본문 바로가기

Dev/BAEKJOON 백준

[백준/BOJ] 백준 코딩 알고리즘 2156번/C++

728x90

백준 코딩 알고리즘 문제 2156

 

백준 코딩 알고리즘 문제 2156번 풀이 - 사용 언어: C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int wine[10001];
int drink[10001];
 
int main() {
 
    int N;
    cin >> N;
 
    wine[0= drink[0= 0;
 
    for (int i = 1; i <= N; i++) {
        cin >> wine[i];
    }
 
    drink[1= wine[1];
    drink[2= wine[1+ wine[2];
 
    for (int i = 3; i <= N; i++) {
        //마시지 않는 경우까지 고려해야 함
        drink[i] = max(drink[i-1], max(drink[i-2+ wine[i], drink[i-3+ wine[i-1+ wine[i]));
    }
 
    cout << drink[N] << endl;
 
    return 0;
}
cs
728x90