반응형
코드
import sys
n = int(input())
T = [0]*(n+2)
P = [0]*(n+2)
dp = [0]*(n+2)
for i in range(1,n+1):
T[i],P[i] = map(int,sys.stdin.readline().split())
for i in range(1,n+1):
if (i+T[i]) <= n+1:
dp[i+T[i]] = max(dp[i+T[i]], dp[i]+P[i])
dp[i+1] = max(dp[i+1], dp[i])
print(max(dp))
반응형
'알고리즘 > dynamic programming' 카테고리의 다른 글
[백준][Python] 11660번 구간 합 구하기 5 (0) | 2022.06.20 |
---|---|
[백준][Python] 2294번 동전 2 (0) | 2022.05.24 |
[백준][Python] 2748번 피보나치 수 2 (0) | 2022.05.20 |
[백준][Python] 15486번 퇴사 2 (0) | 2022.05.18 |
[백준][Python] 1890번 점프 (0) | 2022.05.17 |
댓글