Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

빠똥빠똥

2156번 포도주 시식(DP) - ☆ 본문

백준

2156번 포도주 시식(DP) - ☆

조주똥 2020. 6. 19. 15:48

#문제링크 : https://www.acmicpc.net/problem/2156

<전략>

1. n번째 포도주를 0번 연속해서 마신건지, 1번 연속해서 마신건지, 2번 연속해서 마신건지로 총 3가지 상태가 나온다.

2. 0번 마셨다면, n-1번째 포도주를 0,1,2번 마신 상황 중 가장 큰 값을 n번째에 가져오면 된다.

3. 1번 마셨다면, n-1번째 포도주에서 0번 마신 상황 + 현재 n번째 포도주의 양으로 계산한다.

4. 2번 마셨다면, n-1번째 포도주에서 1번 마신 상황 + 현재 n번째 포도주의 양으로 계산한다.

1. Code

<전략>

1. 이차원 배열안쓰고 일차원 배열로 해결할 때는, 0번 연속 마시는 경우에는 d[n] = d[n-1]이고, 1번 연속 마시는 경우가 더 크면 d[n] = d[n-2] + num[n], 2번 연속 마시는 경우가 더 크면 d[n] = d[n-3] + num[n] + num[n-1]이 된다.

2. Code