티스토리 뷰

계단오르기


[백준] 계단오르기 2579번




#include<stdio.h>


int max(int x, int y) { return x > y ? x : y;}


int main() {

int arr[301];

int sum[2][301];

int test_case;

scanf("%d", &test_case);

for (int i = 1; i <= test_case; i++) {

scanf("%d", &arr[i]);

}

//sum[0][1] = arr[1];

sum[1][1] = arr[1];

for (int i = 2; i <= test_case; i++) {

//한칸 움직였을 때

sum[0][i] = sum[1][i - 1] + arr[i];

// 10 + 20 = 30


//두칸 움직였을 때

if (sum[1][i - 2] > sum[0][i - 2]) {

sum[1][i] = sum[1][i - 2] + arr[i];

printf("1번째 : %d\n", sum[1][i]);

}

else {

sum[1][i] = sum[0][i-2] + arr[i];

printf("2번째 : %d\n", sum[1][i]);


}


}

printf("%d\n", max(sum[1][test_case],sum[0][test_case]));

return 0;

}



'프로그래밍 > 알고리즘' 카테고리의 다른 글

알고리즘 개인 공부  (0) 2017.03.19
2017-03-17 알고리즘 문제 풀기  (0) 2017.03.19
2017-03-16 알고리즘 문제 풀기  (0) 2017.03.18
2017-03-15 알고리즘 문제 풀기  (0) 2017.03.17
기본적 정렬  (0) 2017.03.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함