본문 바로가기

Algorithm

C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2156번:포도주 시식 답

반응형

#include <iostream>

#include <algorithm>

using namespace std;

//A[i] = 입력

//D[i] = i번쨰 포도주를 마셨을 때 최대

// i번째 포도주를 고르지 않았을 때:D[i-1]

//1번 연속으로 마셨을 때:D[i-2] + A[i]

//2번 연속으로 마셨을 때: D[i-3]+A[i-1]+A[i]

int A[10001], D[10001];

int main() {

int n, ans=0;

cin >> n;

for (int i = 1; i <= n; i++)

cin >> A[i];

D[1] = A[1];

D[2] = A[1] + A[2];

for (int i = 3; i <= n; i++)

{

D[i] = max(D[i - 3] + A[i - 1] + A[i], max(D[i - 1], D[i - 2] + A[i]));

}

cout << D[n] << '\n';

}