알고리즘 문제풀이/Dynamic programming

백준 14501 파이썬(DP)

Aytekin 2022. 2. 5. 14:20

DP문제로 

이 문제는 뒤에서부터 생각해야 풀 수 있다.

뒤에서 풀어보려고 계속 노력하다가 결국엔 다른 사람의 블로그를 참고해서 풀었다.

참고 블로그 https://pacific-ocean.tistory.com/199

 

# 14501번: 퇴사
n = int(input())

t_list = []
p_list = []
for _ in range(n):
    t,p = map(int,input().split())
    t_list.append(t)
    p_list.append(p)

dp = [0]*(n+1)
for i in range(n-1,-1,-1):
    if t_list[i] + i > n:
        dp[i] = dp[i+1]
    else:
        dp[i] = max(dp[i+1],p_list[i] + dp[i + t_list[i]])

print(dp[0])
728x90

'알고리즘 문제풀이 > Dynamic programming' 카테고리의 다른 글

백준 2156 파이썬(DP)  (0) 2022.02.09
백준 1912 파이썬(DP)  (0) 2022.02.07
백준 11052 파이썬(DP)  (0) 2022.02.04
백준 11727 파이썬(DP)  (0) 2022.02.04
백준 11053 파이썬(DP)  (0) 2022.02.03