본문 바로가기
파이썬알고리즘

20210622#(45) 백준 14501 퇴사 (다이나믹 프로그래밍)

by zho 2021. 6. 22.

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

 

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net

 

n=int(input())
t,p=[0 for i in range(n+1)],[0 for i in range(n+1)]
for i in range(n):
    a,b=map(int,input().split())
    t[i]=a
    p[i]=b
dp=[0 for i in range(n+1)]

for i in range(n-1,-1,-1):
    if t[i]+i>n:
        dp[i]=dp[i+1]
    else:
        dp[i]=max(p[i]+dp[i+t[i]],d[[i+1]])
print(dp[0])

 

 

다이나믹프로그래밍 공부를 위해 풀어본 문제.. 제목이 재밌어보여서 품

dp문제를 풀때는 점화식을 잘 찾아내면 되는데 이번 문제에선 생각보다 어려웠다.

거꾸로 탐색한다는 생각만 할 수 있다면 수월하게 풀었을만한 문제이다.

728x90