https://www.acmicpc.net/problem/2579
n=int(input())
nlist,dp=[0 for i in range(301)],[0 for i in range(301)]
for i in range(n):
nlist[i]=int(input())
dp[0]=nlist[0]
dp[1]=nlist[0]+nlist[1]
dp[2]=max(nlist[1]+nlist[2],nlist[0]+nlist[2])
for i in range(3,n):
dp[i]=max(dp[i-3]+nlist[i-1]+nlist[i],dp[i-2]+nlist[i])
print(dp[n-1])
마지막 계단을 꼭 밟아야 한다는 조건을 생각하고 풀어야 하는 문제 어려웠다
728x90
'파이썬알고리즘' 카테고리의 다른 글
20210630#(50) 프로그래머스 k번째수 (0) | 2021.06.30 |
---|---|
20210625#(49) 백준 15988 1, 2, 3 더하기 3 (다이나믹 프로그래밍) (0) | 2021.06.25 |
20210622#(47) 백준 11726 2×n 타일링(다이나믹 프로그래밍) (0) | 2021.06.22 |
20210622#(46) 백준 9095 1, 2, 3 더하기(다이나믹 프로그래밍) (0) | 2021.06.22 |
20210622#(45) 백준 14501 퇴사 (다이나믹 프로그래밍) (0) | 2021.06.22 |