티스토리 뷰

계단오르기


[백준] 계단오르기 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/04   »
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 29 30
글 보관함