먼저 마감일 순서대로 정렬을 하고 , 마감일이 남은 강의면 일단 우선순위 큐에 넣었다.
이 때 우선순위 큐의 길이는 현재 몇일이 지났는지 알 수 있다.
그리고 마감일이 넘었지만 우선순위 큐에 0번째 요소가 내가 받을 수 있는 강의료보다 작다면
우선순위 큐에 있는 가장 작은 값을 뺐을 때 마감일이 하루 늘기 때문에 현재 내 강의의 수익을 넣으면 된다.
과제
이문제랑 똑같은 문제다
import sys
import heapq
input = sys.stdin.readline
n = int(input())
lst = []
for i in range(n):
pay, dead = map(int, input().split())
lst.append((dead, pay))
lst.sort(key=lambda x:x[0])
answer = []
for i in range(len(lst)):
if len(answer) < lst[i][0]:
heapq.heappush(answer, lst[i][1])
else:
if answer[0] < lst[i][1]:
heapq.heappop(answer)
heapq.heappush(answer, lst[i][1])
print(sum(answer))