https://www.acmicpc.net/problem/2156
2156번: 포도주 시식
효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규
www.acmicpc.net
n = int(input())
wine_list = [int(input()) for x in range(n)]
dp = [0]
dp.append(wine_list[0])
if(n > 1):
dp.append(wine_list[0] + wine_list[1])
for i in range(3, n + 1):
case_1 = wine_list[i - 1] + dp[i - 2]
case_2 = wine_list[i - 1] + wine_list[i - 2] + dp[i - 3]
case_3 = dp[i - 1]
max_value = max(case_1, case_2, case_3)
dp.append(max_value)
print(dp[n])
코드 복기할 때 유의점:
연속 3잔을 마시지 않아야 하므로
1 : 이번 포도주를 먹고 이전 포도주를 먹지 않은 경우
2 : 이번 포도주를 먹고 이전 포도주도 먹은 경우
3 : 이번 포도주를 먹지 않아야 하는 경우
-> 이렇게 세가지 경우를 고려하여 max 도출!
'22-1 하계 모각코' 카테고리의 다른 글
TIL 0820:: boj 2579 (0) | 2022.08.20 |
---|---|
TIL 0817:: boj 5566 (0) | 2022.08.20 |
TIL 0814:: boj 11048 (0) | 2022.08.14 |
TIL::0810_boj 2210 (0) | 2022.08.11 |
TIL::0806_boj 16918 (0) | 2022.08.07 |