

풀이과정
내용
코드
더보기
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX = 301;
int main()
{
int dp[MAX] = { 0, };
int stair[MAX] = { 0, };
int N = 0;
cin >> N;
for (int i = 0; i < N; ++i)
cin >> stair[i+1];
dp[1] = stair[1];
dp[2] = dp[1] + stair[2];
dp[3] = dp[1] + stair[3];
for (int i = 4; i <= N; ++i)
{
dp[i] = max(dp[i - 3] + stair[i - 1] + stair[i], dp[i - 2] + stair[i]);
}
cout << dp[N] << endl;
return 0;
}
'알고리즘(C++) > 백준 알고리즘' 카테고리의 다른 글
| [백준] C++ 11726번 : 2×n 타일링 (0) | 2019.11.14 |
|---|---|
| [백준] C++ 1003번 : 피보나치 함수 (0) | 2019.11.14 |
| [백준] C++ 9095번 : 1, 2, 3 더하기 (0) | 2019.11.12 |
| [백준] C++ 1463번 : 1로 만들기 (1) | 2019.11.12 |
| [백준] C++ 1966번 : 프린터 큐 (0) | 2019.11.08 |