코딩테스트/Python
[Python] 백준 #1781 - 컵라면
yo~og
2022. 5. 23. 17:05
문제
https://www.acmicpc.net/problem/1781
1781번: 컵라면
상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라
www.acmicpc.net
풀이
import heapq
import sys
n = int(input())
arr = []
for _ in range(n):
tmp = list(map(int,sys.stdin.readline().strip().split()))
arr.append(tmp)
arr = sorted(arr,key=lambda x:x[0]) # 데드라인 기준으로 오름차순
queue = []
for day,count in arr:
heapq.heappush(queue,count) # 컵라면 개수를 넣어준다
if day < len(queue): # 만약 큐의 길이가 날짜보다 크면
heapq.heappop(queue) # 가장 작은 컵라면 개수를 빼준다
print(sum(queue))
데드라인 기준으로 오름차순을 해준다.
우선순위 큐에 컵라면 개수를 넣어준다.
만약 큐의 길이가 날짜보다 크면 데드라인을 넘은거기때문에 가장 작은 컵라면 개수를 빼준다.