Recent Posts
Notice
No Rules Rules
계단 오르기 (feat. 백준, 2579번) 본문
728x90
반응형
계단 오르기
https://www.acmicpc.net/problem/2579
반응형
// woohyeon.kim
// https://www.acmicpc.net/problem/2579
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false), cin.tie(), cout.tie();
register int N, arr[301] = { 0 }, dp[301] = { 0 };
cin >> N;
for (register int n = 1; n <= N; ++n)
cin >> arr[n];
dp[1] = arr[1];
dp[2] = arr[1] + arr[2];
for (register int n = 3; n <= N; ++n)
dp[n] = max(dp[n - 2], dp[n - 3] + arr[n - 1]) + arr[n];
cout << dp[N] << endl;
return 0;
}
// *&)*@*
- 3번째 계단부터 생각해주면 됩니다. 3번째 계단은 1번째 계단까지의 총합에 자신을 더하거나 0번째 계단까지의 총합에 2번째 계단의 값을 더한 경우로 2가지입니다. 즉, 두가지 중에 큰값을 취하면 되겠습니다.
- 따라서 현재 계단까지의 총합을 Ai 라고 하고 현재 계단을 Bi 라고 한다면, Ai = max(Ai-2, Ai-3 + Bi-1) + Bi 로 수식을 구할 수 있습니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
연속합 (feat. 백준, 1912번) (0) | 2022.07.28 |
---|---|
가장 긴 증가하는 부분 (feat. 백준, 11053번) (0) | 2022.07.28 |
RGB거리 (feat. 백준, 1149번) (0) | 2022.07.28 |
2xn 타일링 (feat. 백준, 11726번) (0) | 2022.07.28 |
1, 2, 3 더하기 (feat. 백준, 9095번) (0) | 2022.07.28 |
Comments