본문 바로가기
파이썬알고리즘

20210625#(48) 백준 2579 계단 오르기 (다이나믹 프로그래밍)

by zho 2021. 6. 25.

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

 

2579번: 계단 오르기

계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점

www.acmicpc.net

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