1일 1 알고리즘

[백준]포도주 시식

wallnut's 2020. 8. 15. 23:22

이번에는 각 포도주 잔에 들어있는 포도주의 양이 주어졌을 때 효주를 도와 가장 많은 양의 포도주를 마실수 있는 알고리즘을 작성하여봅니다.

wine = int(input())
wine_capa = [0]
result = [0 for _ in range(wine + 1)]

for _ in range(wine):
    wine_capa.append(int(input()))

for i in range(1, wine + 1):
    if i == 1:
        result[1] = wine_capa[1]
    elif i == 2:
        result[2] = wine_capa[1] + wine_capa[2]
    else:
        result[i] = max(result[i-3] + wine_capa[i-1] + wine_capa[i], result[i-2] + wine_capa[i], result[i-1])  

print(result[i])

result[i]의 최댓값을 구하는 것은 세 가지 방법에 의해 결정됩니다 처음에는 연속으로 두개를 마시거나 또는 하나 띄우고 하나를 마시거나 마지막으로 i번째를 마시지 않는 경우입니다.