[백준/Python] 1927)최소 힙

Jimin_Note·2025년 7월 17일
0

[백준/Python]

목록 보기
33/35
post-thumbnail

✨ 2025.07.17 코딩테스트 문제 풀이

📌 문제: 최소 힙

🧠 문제 설명

  • 자연수 x가 입력되면 → x를 최소 힙에 추가
  • 입력값이 0이면
    → 힙에서 가장 작은 값 출력하고 제거
    → 만약 힙이 비어 있으면 0 출력

💡 접근 방법

  • heapq 모듈을 이용해 최소 힙 구현
  • 입력이 0이면:
    • 힙이 비어있을 경우 0 출력
    • 아니면 가장 작은 값을 heappop()으로 꺼내 출력
  • 입력이 자연수일 경우: heappush()로 힙에 추가

💻 내가 작성한 코드

  • ⭕️ 1번째 답안(통과)
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 쓰면 최소 힙 동작이 깨진다!
profile
Hello. I'm jimin:)

0개의 댓글