
<문제>
https://www.acmicpc.net/problem/14235
<풀이>
import sys
import heapq
input = sys.stdin.readline
N = int(input())
heap = []
for _ in range(N):
cmd = list(map(int, input().split()))
if cmd[0] != 0:
for i in range(cmd[0]):
heapq.heappush(heap, -cmd[i+1])
else:
if len(heap) == 0:
print(-1)
else:
present = -heapq.heappop(heap)
print(present)
- 가장 가치가 큰 선물을 뽑아줘야 하므로 최대 힙 문제
- 첫째 자리가 0이면 선물을 나눠주고 0이 아니면 충전
- 충전할 때 힙 push
- 선물 줄 때 힙 pop
- 선물 주머니가 비어있을 때는 -1
'TIL > [파이썬] 1일 1코테' 카테고리의 다른 글
| 회전초밥_백준28107 (0) | 2025.02.15 |
|---|---|
| 절댓값 힙_백준11286 (0) | 2025.02.13 |
| RelativeRanks_LeetCode (0) | 2025.02.11 |
| 더 맵게_프로그래머스 (1) | 2025.02.10 |
| 균형잡힌 세상_백준4949 (0) | 2025.02.08 |