카테고리 없음
백준 파이썬 2579 계단 오르기
우히힝
2021. 12. 4. 06:12
https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
대표적인 DP문제
너무 어렵게 생각하지말고
내가 지금 서있는 계단[i] + 계단[i-1] + 지금까지 올라왔던 dp계단[i-3] or 지금 내가 서있는 계단[i] + dp계단[i-2] 중 큰 수를 정하고 계단의 맨 위를 계산하면 됨.
n=int(input())
li=[0]
for i in range(n):
li.append(int(input()))
if n == 1:
print(li[1])
else:
dp = [0] * (n+1)
dp[1] = li[1]
dp[2] = li[1] + li[2]
for i in range(3,n+1):
dp[i] = max(dp[i-3]+li[i-1]+li[i],dp[i-2]+li[i])
print(dp[n])