가오리의 코딩일기

[2156] 포도주 시식 본문

Python/백준

[2156] 포도주 시식

류경혜 2022. 5. 24. 13:30

n = int(input())
dp = []
for i in range(n):
    dp.append(int(input()))
list0 = [0]*n
list0[0] = dp[0]
if n > 1:
    list0[1] = dp[0]+dp[1]
if n > 2:
    list0[2] = max(dp[2]+dp[1], dp[2]+dp[0], list0[1])
for i in range(3, n):
    list0[i] = max(list0[i-1], list0[i-3]+dp[i-1]+dp[i], list0[i-2]+dp[i])
print(list0[n-1])
n = int(input())
array = [0] * 10000
for i in range(n):
    array[i] = int(input())
result = [0]*10000
result[0] = array[0]
result[1] = array[0]+array[1]
result[2] = max(array[2]+result[0], array[2]+array[1], result[1])
for i in range(3, n):
    result[i] = max(array[i]+result[i-2], array[i] +
                    array[i-1]+result[i-3], result[i-1])
print(max(result))

 

POINT

 - 포도주 잔을 선택하면 전부 마신다

 - 연속 3잔을 마실 수 없다

 - 가장 많은 양의 포도주를 마실 수 있도록 한다

   ex) 6 10 13 9 8 1→ 6 10 9 8 = 33

 

'Python > 백준' 카테고리의 다른 글

[11055] 가장 큰 바이토닉 부분 수열  (0) 2022.05.24
[11053] 가장 긴 증가하는 부분 수열  (0) 2022.05.24
[9465] 스티커  (0) 2022.05.24
[2193] 이친수  (0) 2022.05.24
[11057] 오르막 수  (0) 2022.05.23