알고리즘/백준

백준 2579: 계단 오르기 (Python)

sssbin 2022. 4. 5. 15:51

 

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

 

2579번: 계단 오르기

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

www.acmicpc.net

 

 

어차피 마지막칸은 무조건 밟아야 하기 때문에 현재 칸을 밟는 경우의 최댓값을 계산해준다

인덱스 에러가 나지 않기 위해 리스트 인덱스0에 0을 추가했다

 

n = int(input())
arr = [0]
for _ in range(n):
    arr.append(int(input()))

d = [0] * (n+1)
d[1] = arr[1]

if n >= 2:
    d[2] = arr[1] + arr[2]

for i in range(3, n+1):
    d[i] = max(d[i-3] + arr[i-1], d[i-2]) + arr[i]

print(d[n])