728x90
<문제 링크>
https://www.acmicpc.net/problem/14501
<문제 풀이>
1. 리스트 뒤에서부터 거꾸로 확인
<코드>
#이취코 답
n = int(input())
t = []
p = []
dp = [0] * (n+1)
max_value = 0
for i in range(n):
a,b = map(int,input().split())
t.append(a)
p.append(b)
for i in range(n-1, -1, -1):
time = t[i]+i
if time<=n:
dp[i] = max(p[i]+dp[time], max_value)
max_value = dp[i]
else:
dp[i] = max_value
print(max_value)
<고쳐야 할 점>
- 해당 풀이 기억하기
- 중간 과정이 더 클 수 있다는 점 ,,,
- 복습 알고리즘
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[다익스트라] 난이도2, ACM-ICPC '화성 탐사' (Python) (0) | 2022.03.31 |
---|---|
[플로이드워셜] 난이도2, K 대회 '정확한 순위' (Python) (0) | 2022.03.31 |
[동적계획법] 난이도2, 이취코 226p '효율적인 화폐 구성' (Python) (0) | 2022.03.30 |
[이분탐색] 백준 2110번 '공유기 설치' (Python) (0) | 2022.03.29 |
[정렬] 백준 1715번 '카드 정렬하기' (Python) (0) | 2022.03.29 |