// 풀이
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int n;
int grapes[10001]; // 포도주 양
int dp[10001]; // n번까지 고려할때 최대로 마실수 있는 포도주 양
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> grapes[i];
}
// 0번째 초기화
grapes[0] = 0;
dp[0] = 0;
dp[1] = grapes[1]; // 포도주 잔 1개 있을 때
dp[2] = grapes[1] + grapes[2]; // 포도주 잔 2개 있을 때
for (int i = 3; i <= n; i++) {
int temp = max(dp[i - 1], dp[i-2] + grapes[i]);
dp[i] = max(temp, dp[i - 3] + grapes[i - 1] + grapes[i]);
}
cout << dp[n];
return 0;
}
728x90
'Baekjoon' 카테고리의 다른 글
백준 #2468 [c++] (0) | 2021.08.31 |
---|---|
백준 #4963 [c++] (0) | 2021.08.30 |
백준 #14502 [c++] (0) | 2021.08.28 |
백준 #1157 [c++] (0) | 2021.08.05 |
백준 #1697 [c++] (0) | 2021.08.02 |