문제 링크
https://www.acmicpc.net/problem/14501
내 풀이
def sol():
n = int(input())
t, p = [0],[0]
for i in range(n):
tt, pp = map(int, input().split())
t.append(tt)
p.append(pp)
dp = [0] * (n+2)
for day in range(n,0,-1):
if day + t[day] > n+1:
dp[day] = dp[day + 1]
else:
dp[day] = max(p[day] + dp[day + t[day]], dp[day+1])
print(dp[1])
if __name__ == "__main__":
sol()
피드백
- 다이나믹 프로그래밍 점화식 세우는 능력 향상시키기
- 문제에 따라 뒤에서 할 지 앞부터 할 지 생각잘하기
- 점화식 한 구간을 노트에 쓰면서 하면 식 세우기 편한 것 같다.
'코딩 문제 > 백준' 카테고리의 다른 글
[백준_14502번] 연구소 (python) (0) | 2022.05.04 |
---|---|
[백준_14499번] 주사위 굴리기 (0) | 2022.02.21 |
[백준_13458번] 시험 감독(python) (0) | 2022.02.19 |
[백준_3190번] 뱀 (python) (0) | 2022.02.18 |
[백준_3191번] 백조의 호수 (python) (0) | 2022.02.17 |