1일 ~ i일까지 상담 가능할 때의 최대 금액을 구하는 방식으로 문제를 품 -> for문으로 i = 0~N-1
dp[i]에 해당 값을 저장
dp[i] = i번째 날~퇴사일 까지 벌 수 있는 최대 수입!!!
dp[i] = max(dp[i+arr[i][0]]+arr[i][1], dp[i+1])
dp[i] = dp[i + 1]
Q1. 뒤에서(N-1)부터 생각해야하는 이유???
Q2. dp[i] = max(dp[i+arr[i][0]]+arr[i][1], dp[i+1])
왜 이런 식을?
if i+arr[i][0] < N:
를 <=
로 바꿔줘야 마지막날 전까지는 꽉 채워서 일할 수 있다!import sys
input = sys.stdin.readline
N = int(input())
arr = []
for i in range(N):
arr.append(list(map(int, input().split())))
dp = [0 for i in range(N+1)]
answer = 0
for i in range(N-1, -1, -1):
if i+arr[i][0]<=N:
dp[i] = max(dp[i+arr[i][0]]+arr[i][1], dp[i+1])
else:
dp[i] = dp[i + 1]
print(dp[0])
개강날부터 퇴사, 종강을 꿈꾸는 중,,