[백준] 2156 : 계단 오르기

letsbebrave·2022년 4월 26일
0

codingtest

목록 보기
127/146
post-thumbnail

문제

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

두번째 점화식
dp[n] = stairs[n] + dp[n-2] 로 수정

풀이

import sys

input = sys.stdin.readline

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

dp = [0 for _ in range(n+1)]

if n == 1:
    print(stairs[0])
else:
    dp[1] = stairs[1]
    dp[2] = stairs[1] + stairs[2] # max를 구하는 것이므로 두 개 합해줌
    
    for i in range(3, n+1): # 인덱스 2인 계단부터 인덱스 n인 계단까지 더툼
        # 한칸 건너뛴 계단 n-2
        dp[i] = max(stairs[i] + dp[i-2], stairs[i] + stairs[i-1] + dp[i-3])
        
print(dp[-1])
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글