현제의 현재이야기

<2022모각코/TIL> [백준/python] 2156- 포도주 시식 본문

algorithm/HUFS 2022 하계 모각코

<2022모각코/TIL> [백준/python] 2156- 포도주 시식

현재의 현제 2022. 8. 20. 13:09
n = int(input())
wine = [int(input()) for _ in range(n)]
dp = [0] * n

dp[0] = wine[0]
if n > 1:
    dp[1] = wine[0] + wine[1]
    if n > 2:
        dp[2] = max(wine[1] + wine[2], wine[0] + wine[2], wine[0] + wine[1])
        if n > 3:
            for i in range(3, n):
                dp[i] = max(wine[i] + wine[i - 1] + dp[i - 3], wine[i] + dp[i - 2], dp[i - 1])
print(dp[n - 1])

알고리즘:

계단 오르기랑 똑같은데 차이점은 맨 끝칸을 안 가도 된다는 것이다. 그래서 dp[2] 의 max에 wine[0] + wine[1] 를 추가하고, n > 3일 때, dp[i - 1]을 추가하여 맨 끝칸을 안 간 것도 추가해준다. 

 

dp를 더욱 더 잘 알게 해준 문제

Comments