본문 바로가기
Study/Coding Test

[백준] 2579 - 계단 오르기 Python

by 들숨날숨흡 2023. 6. 2.
728x90

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

 

2579번: 계단 오르기

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

www.acmicpc.net

 

# dp[0] = stair[0]
# dp[1] = stair[0] + stair[1]
# dp[2] = max(stair[0] + stair[2], stair[1] + stair[2])
# dp[3:] = max(dp[i - 3] + stair[i - 1] + s[i], dp[i - 2] + s[i])

import sys

input = sys.stdin.readline

N = int(input())
stair = [0] * (N + 1)
dp = [0] * (N + 1)

for i in range(N):
    M = int(input())
    stair[i] = M

dp[0] = stair[0]
dp[1] = stair[1] + stair[0]

if N >= 3:
    dp[2] = max(stair[0] + stair[2], stair[1] + stair[2])
    for i in range(3, N):
        dp[i] = max(dp[i - 3] + stair[i - 1] + stair[i], dp[i - 2] + stair[i])

print(dp[N - 1])
728x90