Algorithm(BOJ, Python)/Dynamic Programing

[백준_15486] 퇴사2 python

kurooru 2022. 7. 10. 15:03

퇴사1과 뭐가 다른건지 잘 모르겠다.

수학책 풀고 수학익임책 푼 듯한 느낌,,?

# n 입력
n = int(input())

# T, P 설정
T, P = [], []

# t, p 입력
for _ in range(n):
    t, p = map(int, input().split())
    T.append(t)
    P.append(p)

# dp 설정
dp = [
    0 for _ in range(n+1)
]

# dp 초기설정
dp[n] = 0

# dp 채우기
for i in range(n-1, -1, -1):
    if i + T[i] > n:
        dp[i] = dp[i+1]
    else:
        dp[i] = max(dp[i+1], dp[i+T[i]] + P[i])

# 출력
print(dp[0])