본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 2579번 계단 오르기

by 현장 2021. 12. 15.

-코드

n = int(input())
arr = [0] * 300
for i in range(n):
    arr[i] = int(input())
dp = [arr[0], arr[0] + arr[1], max(arr[1] + arr[2], arr[0] + arr[2])]
for i in range(3, n):
    result = max(dp[i-3] + arr[i-1] + arr[i], dp[i-2] + arr[i])
    dp.append(result)
print(dp[n - 1])

처음에 문제를 보고 이해는 되는데 수식을 못 찾아서 며칠 생각을 해보고 수식이 떠오르지 않아 기본 수식을 찾았고 코딩을 하는데 arr을 append형식으로 짰으나 3 이하일 경우 문제가 생겨서 다시 선언을 하여서 해결을 하였습니다.