Baekjoon

백준 #2156 [c++]

PON_Z 2022. 1. 25. 19:20

 

 

// 풀이

 

#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