728x90
2022.02.26
백준 14501 퇴사
# 14501 퇴사
N = int(input())
T = []
P = []
# 날짜와 금액을 나눠 사용하기 위해 두 리스트에 나눠 저장한다.
for i in range(N):
a,b = map(int, input().split())
T.append(a)
P.append(b)
# result에는 각 날짜로 얻을 수 있는 가장 큰 금액을 저장한다.
result = []
for i in range(N):
# 현재 날짜와 수행해야 하는 일수를 더해 퇴사날보다 늦으면 0 아니면 P의 값을 저장
if i + T[i] <= N:
result.append(P[i])
else:
result.append(0)
# 현재 날짜의 수행에 필요한 일수 이후의 날짜이면서 result의 값이 0이 아닌경우
# 얻을 수 있는 최대의 값을 구해준다.
for i in range(N):
num = i+T[i]
for j in range(num,N):
if result[j] != 0:
result[j] = max(result[j], result[i] + P[j] )
print(max(result))
728x90
'Algorithm' 카테고리의 다른 글
백준 1966 파이썬 (0) | 2022.03.08 |
---|---|
백준 13458 파이썬 (0) | 2022.02.25 |
백준 1654 파이썬 (0) | 2022.02.23 |
백준 10816 파이썬 (0) | 2022.02.22 |
백준 10773 파이썬 (0) | 2022.02.15 |