Baekjoon Case

[파이썬 / 백준 2156번] 포도주 시식

Scarlett_C 2021. 9. 9. 20:14
728x90

https://www.acmicpc.net/problem/2156

문제 풀기 전에는 계단 오르기와 비슷할거라고 생각했다.

근데 

N=int(input())
wl=[int(input()) for _ in range(N)]
dp=[0]*N
dp[0]=wl[0]
if N>1:
    dp[1]=wl[0]+wl[1]
if N>2:
    dp[2]=max(wl[0]+wl[2],wl[1]+wl[2],dp[1])
    
for i in range(3,N):
    dp[i]=max(dp[i-2]+wl[i],wl[i]+wl[i-1]+dp[i-3],dp[i-1])

print(dp[N-1])

근데 너무 꼬아서 생각했나..?,,

막 이리저리 꼬아서 생각하다가 머리 속이 엉켜버렸다.

 

계단오르기는 현재 밟고 있는 계단의 점수를 무조건 더해야 했지만,

포도주시식 문제는 패스 할 수도 있다는게 다른 점 같다.

728x90