현제의 현재이야기
<2022모각코/TIL> [백준/python] 2156- 포도주 시식 본문
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를 더욱 더 잘 알게 해준 문제
'algorithm > HUFS 2022 하계 모각코' 카테고리의 다른 글
<2022모각코/TIL> 2022 하계 모각코 후기 (1) | 2022.08.27 |
---|---|
[백준/python] 11048- 이동하기 (0) | 2022.08.26 |
<2022모각코/TIL> [백준/python] 2579- 계단오르기 (0) | 2022.08.18 |
<2022모각코/TIL> [백준/python] 2210 - 숫자판 점프 (0) | 2022.08.14 |
<2022모각코/TIL> [백준/python] 5566 - 주사위 게임 (0) | 2022.08.10 |
Comments