less than 1 minute read

문제링크

다이나믹프로그래밍 활용!

파이썬


import sys
input = sys.stdin.readline

n = int(input())
s = [list(map(int,input().split())) for _ in range(n)]

dp = [0] * (n+1)

for i in range(n-1,-1,-1):
    if s[i][0] + i > n:
        dp[i] = dp[i+1]
    else:
        dp[i] = max(dp[i+1], s[i][1]+dp[i+s[i][0]])
print(dp[0])


카테고리:

업데이트:

댓글남기기