백준

[2579] 계단 오르기

Jcoder 2018. 8. 3. 20:28


#include <iostream>
#define MAX 301
using namespace std;
int max(int a, int b);
int main()
{
int testcase, i;
int dp[MAX], arr[MAX];
cin >> testcase;
for (i = 0; i < testcase; i++)
cin >> arr[i];
dp[0] = arr[0];
dp[1] = max(arr[0] + arr[1], arr[1]);
dp[2] = max(arr[0], arr[1]) + arr[2];
for (i = 3; i < testcase; i++)
dp[i] = max(dp[i-2] + arr[i], dp[i-3]+arr[i-1] + arr[i]);
cout << dp[testcase-1] << endl;
return 0;
}
int max(int a, int b)
{
return (a > b) ? a : b;
}