Algorithm/Baekjoon
[Python] 2579. 계단오르기
느낌표 공장장
2021. 9. 23. 23:13
n = int(input()) # 계단의 수
stairs = [int(input()) for _ in range(n)] # 계단
if n == 1:
print(stairs[0])
else:
dp = [0 for _ in range(n)]
dp[0] = stairs[0] # 1번 계단
dp[1] = stairs[0] + stairs[1] # 1번 + 2번 계단 밟음
for i in range(2, n):
# 1. 현재 계단 + 이전의 계단 + 전전전의 계단 밟은 경우
# 2. 현재 계단 + 전전의 계단 밟은 경우
# 두 경우 중 더 큰 값을 선택
dp[i] = max(dp[i-3] + stairs[i-1] + stairs[i], dp[i-2] + stairs[i])
print(dp[n-1])
점화식을 찾는 것이 포인트였던 문제