728x90
문제 풀기 전에는 계단 오르기와 비슷할거라고 생각했다.
근데
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
'Baekjoon Case' 카테고리의 다른 글
[파이썬 / 백준 11054번] 가장 긴 바이토닉 부분 수열 (0) | 2021.09.11 |
---|---|
[파이썬 / 백준 11503번] 가장 긴 증가하는 부분 수열 (0) | 2021.09.09 |
[파이썬/백준 10844번] 쉬운 계단수 (0) | 2021.09.08 |
[파이썬/백준 1463번] 1로 만들기 (0) | 2021.09.06 |
[파이썬/백준 2579번] 계단오르기 (0) | 2021.09.01 |