practivceAlgorithm/백준

[백준][Python] 14501 퇴사

findTheValue 2021. 8. 3. 23:43

매번 dp로 풀엇지만 브루트포스로도 풀린다고 한다. 처음부터 더해서 최댓값갱신. 다음 기회에는 풀어보는걸로,

import sys
input = sys.stdin.readline

N = int(input())
T = []
P = []
dp = []
for i in range(N):
    a, b = map(int, input().split())
    T.append(a)
    P.append(b)
    dp.append(b)
dp.append(0)
for i in range(N - 1, -1, -1):
    if i + T[i] > N:
        dp[i] = dp[i + 1]
    else:
        dp[i] = max(dp[i + 1], P[i] + dp[i + T[i]])

print(dp[0])