[백준] 2579-계단오르기

kiteday·2025년 7월 18일
0

코딩테스트

목록 보기
22/46

문제바로가기

계단의 합 최댓값 구하기 문제

n = int(input())
stairs = [0]*n
for i in range(n):
    stairs[i]=int(input())

if n == 1:
    print(stairs[0])
elif n == 2:
    print(stairs[0] + stairs[1])
else:
    dp = [0]*n
    dp[0] = stairs[0]
    dp[1] = stairs[0] + stairs[1]
    dp[2] = max(dp[0] + stairs[2], stairs[1] + stairs[2])
    for i in range(3, n):
        dp[i] = max(dp[i-2] + stairs[i], dp[i-3] + stairs[i-1] + stairs[i])
    print(dp[-1])

stairs 부분은 stairs = [int(input()) for _ in range(n)]으로 한 줄로 써도 됨! (파이써닉하게)

profile
공부

0개의 댓글