less than 1 minute read

백준링크

다이나믹 프로그래밍

문제에 제시된 조건을 잘 확인하자..!!

파이썬

n = int(input())
s = [int(input()) for _ in range(n)]
dp = [0] * (n)

if len(s) <= 2:
    print(sum(s))
    
else:
    dp[0] = s[0]
    dp[1] = s[0]+s[1]
    for i in range(2,n):
        dp[i]=max(dp[i-3]+s[i-1]+s[i], dp[i-2]+s[i])
    print(dp[-1])    


카테고리:

업데이트:

댓글남기기