✨ 2025.07.17 코딩테스트 문제 풀이
🧠 문제 설명
- 자연수 x가 입력되면 → x를 최소 힙에 추가
- 입력값이 0이면
→ 힙에서 가장 작은 값 출력하고 제거
→ 만약 힙이 비어 있으면 0 출력
💡 접근 방법
- heapq 모듈을 이용해 최소 힙 구현
- 입력이 0이면:
- 힙이 비어있을 경우 0 출력
- 아니면 가장 작은 값을
heappop()
으로 꺼내 출력
- 입력이 자연수일 경우:
heappush()
로 힙에 추가
💻 내가 작성한 코드
import sys, heapq
N = int(sys.stdin.readline())
points = []
count = 0
for _ in range(N):
x = int(sys.stdin.readline())
if x == 0:
count += 1
if points:
print(heapq.heappop(points))
else:
print(0)
else:
heapq.heappush(points, x)
✅ 배운 점
- 문제를 잘 숙지하자..0의 개수만큼 출력해야하는 걸 뒤늦게 확인해서..
- 힙을 사용할 땐 heapq 모듈의 push/pop 함수를 반드시 사용해야 하고, append 쓰면 최소 힙 동작이 깨진다!