https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
#include<iostream>
#define MAX 301
using namespace std;
int N;
int arr[MAX];
int dp[MAX];
int Max(int A, int B) {
if (A > B) {
return A;
}
else {
return B;
}
}
int main(void)
{
cin >> N;
for (int i = 1; i <= N; i++)
{
cin >> arr[i];
}
dp[1] = arr[1];
dp[2] = arr[1] + arr[2];
dp[3] = Max(arr[1] + arr[3], arr[2] + arr[3]);
for (int i = 4; i <= N; i++)
{
dp[i] = Max(dp[i - 2] + arr[i], dp[i - 3] + arr[i - 1] + arr[i]);
}
cout << dp[N] << endl;
return 0;
}
설계