백준(BOJ)
[Python/파이썬] - 백준(BOJ) 1781번 : 컵라면
phanre
2022. 5. 28. 17:53
https://www.acmicpc.net/problem/1781
1781번: 컵라면
상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라
www.acmicpc.net
n+1개의 arr 배열을 생성하여 컵라면 개수를 arr[끝나는 시간]에 맞게 저장해준다.
끝나는 시간이 널널한 것은 나중에 처리해도 되기 때문에
끝나는 시간 최대값을 m으로 저장하고 arr m부터 1까지 역순으로 heappush후 heappop하여 최대값을 꺼낸다.
최대값을 꺼낸 후 answer를 증가시킨다.
import sys
from heapq import heappop, heappush
input = sys.stdin.readline
n = int(input())
arr = [[] for _ in range(n+1)]
m = 0
for _ in range(n):
a, b = map(int,input().split())
arr[a].append(b)
m = max(m, a)
heap = []
answer = 0
for i in range(m, 0, -1):
for x in arr[i]:
heappush(heap, -x)
if heap:
answer -= heappop(heap)
print(answer)