본문 바로가기
Algorithm/Greedy

[파이썬] 백준 13904 : 과제 (골드3)

by 베짱이28호 2023. 12. 19.

[파이썬] 백준 13904 : 과제 (골드3)

 

13904번: 과제

예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다.

www.acmicpc.net


문제


풀이

방향성 생각

  • 뒤에서 부터 시작하기

전체코드

from collections import defaultdict as dd
import heapq as hq
import sys
input = lambda : sys.stdin.readline().rstrip()

table = dd(list)
for _ in range(int(input())):
    d,p = map(int,input().split())
    table[d].append(-p)

info = sorted(list(table.items()))

heap = []
answer,deadline = 0,info[-1][0]
for _ in range(deadline):
    
    if info and deadline <= info[-1][0]:
        _,pay = info.pop()
        
        for p in pay:
            hq.heappush(heap,p)

    if heap: answer -= hq.heappop(heap)
    deadline -= 1
    
print(answer)

코멘트

컵라면, 순회강연이랑 같은 문제

자세한 설명은 생략한다

댓글