본문 바로가기

알고리즘(C++)/백준 알고리즘

[백준] C++ 2579번 : 계단 오르기

 

풀이과정


내용

 

코드


 

더보기
#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;
}