백준 2579 [c++]


백준 2579 [c++]

#include <iostream> using namespace std; int arr[301], dp[301]; int main(void) { int stair, ct,temp; cin >> stair; fill_n(dp + 1, 300, 0); for (int i = 1; i < stair + 1; i++) { int point; cin >> point; arr[i] = point; } dp[1] = arr[1]; dp[2] = arr[1] + arr[2]; for (int i = 3; i < stair + 1; i++) { if (dp[i - 3] + arr[i - 1] + arr[i] > dp[i - 2] + arr[i]) dp[i] = dp[i - 3] + arr[i - 1] + arr[i]; else dp[i] = dp[i - 2] + arr[i]; } cout << dp[stair]; } 문제에서 마지막 계단을 꼭 밟으라고 했다. 게다가 계단을 올라가는 방법은 한칸 올라...



원문링크 : 백준 2579 [c++]