https://www.acmicpc.net/problem/2579
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N; cin >> N;
vector<int> list,dp;
for (int i = 0; i < N; i++) {
int n; cin >> n;
list.push_back(n);
dp.push_back(n);
}
dp[1] += list[0];
dp[2] += max(list[0], list[1]);
for (int i = 3; i < N; i++) {
dp[i] += max(dp[i-2],dp[i-3]+list[i-1]);
}
cout << dp[N-1] << endl;
return 0;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 백준 "9095) 1,2,3 더하기 (0) | 2022.06.06 |
---|---|
(c++) 백준 "2606) 바이러스" (0) | 2022.06.06 |
(c++) 백준 "1463) 1로 만들기" (0) | 2022.06.06 |
(c++) 프로그래머스 "징검다리(level-4)" (0) | 2022.06.06 |
(c++) 프로그래머스 "불량사업자 (level-3)" (0) | 2022.06.06 |