본문 바로가기
Study/Coding Test

[백준] 15486 - 퇴사 2 Python

by 들숨날숨흡 2023. 7. 7.
728x90

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

 

15486번: 퇴사 2

첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

 

정답 코드


import sys

input = sys.stdin.readline

N = int(input())
dp = [0] * (N + 1)
T = [0] * (N + 1)
P = [0] * (N + 1)

for i in range(N):
    t, p = map(int, input().split(" "))
    T[i + 1] = t
    P[i + 1] = p

for i in range(1, N + 1):
    dp[i] = max(dp[i], dp[i - 1])
    complete = i + T[i] - 1
    if complete <= N:
        dp[complete] = max(dp[complete], dp[i - 1] + P[i])

print(max(dp))

728x90