이번 문제는 우선순위큐를 이용하여 해결하였다. 과제들을 오름차순으로 정렬시키고, 날짜 마지막 날부터 감소시키는 순으로 순회하며 과제들을 할 수 있는 날이라면 available에 넣어주고, available을 pop하여 결과값에 더해주도록 하였다. 이때 available에는 현재 날짜에서 가능한 과제가 들어가는데, 많은 점수를 얻어야 하기 때문에 available를 과제의 점수를 음수로 넣은 heapq로 선언하여 최대힙으로 이용하였다.
import heapq
n=int(input())
tasks=[list(map(int, input().split())) for _ in range(n)]
tasks.sort()
available=[]
cur=tasks[-1][0]
answer=0
while cur>0:
while tasks and tasks[-1][0]>=cur:
heapq.heappush(available, -tasks.pop()[1])
cur-=1
if not available:
continue
answer-=heapq.heappop(available)
print(answer)