본문 바로가기

알고리즘 공부

[BOJ] 계단 오르기(2579) 문제 풀이 | Python3


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n=int(input())
stairs=[int(input()) for i in range(n)]
dp=[0]*n
 
for i in range(n):
    if i==0:
        dp[0]=stairs[0]
    if i==1:
        dp[1]=max(dp[0]+stairs[1], stairs[1])
    if i==2:
        dp[2]=stairs[2]+max(stairs[0], stairs[1])
    if i>2:
        dp[i]=stairs[i]+max(dp[i-2], dp[i-3]+stairs[i-1])
 
print(dp[n-1])
cs