백준 2156번 : 포도주 시식 / C++

2023. 2. 22. 13:05개인공부/코딩테스트

2156번: 포도주 시식 (acmicpc.net)

 

2156번: 포도주 시식

효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규

www.acmicpc.net

계단오르기와 유사한 방법으로 풀이하였다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
 
#include <iostream>
 
using namespace std;
int arr[10003][2];
 
int main()
{
 
    int max = 0;
    int n = 0;
    cin >> n;
 
    for (int i = 3; i < n+3++i)
    {
        int wine = 0;
        cin >> wine;
 
        
        arr[i][0= wine + arr[i - 1][1];
 
        if (arr[i - 2][0> arr[i - 3][0&& arr[i - 2][0> arr[i - 2][1])
            arr[i][1= wine + arr[i - 2][0];
        else if (arr[i - 3][0> arr[i - 2][1])
            arr[i][1= wine + arr[i - 3][0];
        else
            arr[i][1= wine + arr[i - 2][1];
 
        if (max < arr[i][0])
            max = arr[i][0];
 
        if (max < arr[i][1])
            max = arr[i][1];
    }
 
    cout << max;
 
    return 0;
}
 
 
 
 
cs