티스토리 뷰

알고리즘/DP

BOJ)2156 포도주 시식

광그로 2017. 6. 22. 13:34

https://www.acmicpc.net/problem/2156


9465스티커 문제와 유사한 접근



 [1]

[2] 

[3] 

[4] 

[5] 

[6] 

 안마심

 0

6 

6+10 

 

 

 

 첫번째잔

 6 

10 

6+13 

 

 

 

 두번째잔

 0

  6 +10 

10+13 

 

 

 



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
#include <iostream>
#include <algorithm>
using namespace std;
 
int content[10001];
int dp[10001][3];
 
int max(int a, int b, int c) {
    return max(max(a, b), c);
}
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> content[i];
    }
    dp[0][0= dp[0][1= dp[0][2= 0;
 
    for (int i = 1; i <= n; i++) {
        dp[i][0= max(dp[i - 1][0], dp[i - 1][1], dp[i - 1][2]);
        dp[i][1= dp[i - 1][0+ content[i];
        dp[i][2= dp[i - 1][1+ (dp[i-1][1] ? content[i] : 0);
    }
    
    cout << max(dp[n][0], dp[n][1], dp[n][2]);
 
}
cs


'알고리즘 > DP' 카테고리의 다른 글

BOJ)11055 가장 큰 증가 부분 수열  (0) 2017.06.30
BOJ11053 가장 긴 부분 수열(다시보기)  (0) 2017.06.26
BOJ)9465 스티커(다시보기★)  (0) 2017.06.22
BOJ)2193 이친수  (0) 2017.06.22
BOJ)11057 오르막수(다시보기)  (0) 2017.06.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함