알고리즘

<백준> 2579번 파이썬 알고리즘 [동적 프로그래밍]

changha. 2021. 11. 20. 22:33
import sys

n = int(sys.stdin.readline())
s = [0 for _ in range(301)]
dp = [0 for _ in range(301)]

for i in range(n):
  s[i] = int(input())

dp[0] = s[0]
dp[1] = s[0] + s[1]
dp[2] = max(s[0] + s[2], s[1] + s[2])

for i in range(3, n):
  dp[i] = max(dp[i - 3] + s[i - 1] + s[i], dp[i - 2] + s[i])

print(dp[n - 1])

dp에 i - 3 부분이 있으므로 

 

0, 1, 2 까지는 직접 계산해준다