문제 링크 : www.acmicpc.net/problem/2579
풀이에 참고한 링크 : sihyungyou.github.io/baekjoon-2579/
내 풀이(2021.1.22.) :
#include <iostream>
#include <algorithm>
using namespace std;
int score[300];
int dp[300];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N; cin >> N;
for (int i = 0; i < N; i++) {
cin >> score[i];
}
dp[0] = score[0];
dp[1] = score[0] + score[1];
dp[2] = max(score[0], score[1]) + score[2];
if (N < 3) {
cout << dp[N - 1];
return 0;
}
for (int i = 3; i < N; i++) {
dp[i] = max(dp[i - 3] + score[i - 1], dp[i - 2]) + score[i];
}
cout << dp[N - 1];
return 0;
}
'알고리즘 > DP' 카테고리의 다른 글
백준 1149번 : RGB 거리 (0) | 2021.01.29 |
---|---|
백준 17626번 : Four Squares (0) | 2021.01.22 |
백준 2294번 : 동전 2 (0) | 2021.01.19 |
백준 9095번 : 1, 2, 3 더하기 (0) | 2021.01.18 |
백준 1904번 : 01타일 (0) | 2021.01.07 |