페이지

2579번: 계단 오르기

https://www.acmicpc.net/problem/2579


#include<stdio.h>
const int MAX_N = 300;
int n, s[MAX_N];
int a[MAX_N], b[MAX_N];
int max(int x, int y) { return x>y ? x : y; }
int main() {
    int i;
    scanf("%d", &n);
    for (i = 0; i<n; i++)
        scanf("%d", &s[i]);
    a[0] = s[0];
    a[1] = s[1];
    b[1] = s[0] + s[1];
    for (i = 2; i<n; i++) {
        a[i] = max(a[i - 2], b[i - 2]) + s[i];
        b[i] = a[i - 1] + s[i];
    }
    printf("%d", max(a[n - 1], b[n - 1]));
    return 0;
}

댓글 없음 :

댓글 쓰기