🍋 문제링크


https://www.acmicpc.net/problem/14501

🍎 코드 제출 기록 (메모리 및 시간)


제출 날짜

2021/04/22

메모리

121220 KB

시간

112 ms

🥝 메모


🍓 문제풀이


https://s3-us-west-2.amazonaws.com/secure.notion-static.com/048cc4cb-3dca-4a75-ba28-5082fabda825/1.png

🍉 Code


N = int(input())
time = [0 for _ in range(N)]
pay = [0 for _ in range(N)]
DP = [0 for _ in range(N+1)]

for i in range(N):
    tmp = list(map(int, input().split()))
    time[i] = tmp[0]
    pay[i] = tmp[1]

DP[N] = 0
for i in range(N-1, -1, -1):
    if (N-i) < time[i]:
        DP[i] = DP[i+1]
    else:
        DP[i] = max(pay[i] + DP[i+time[i]], DP[i+1])

print(DP[0])