백준 문제 풀이 - 절댓값 힙 11286번

Joonyeol Sim👨‍🎓·2021년 12월 18일
0

백준문제풀이

목록 보기
38/128

📜 문제 이해하기

절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.
배열에 정수 x (x ≠ 0)를 넣는다.
배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다.
프로그램은 처음에 비어있는 배열에서 시작하게 된다.

💡 문제 재정의

인풋의 절댓값의 순서대로 힙에 저장하고 출력하자

✏️ 계획 수립

파이썬의 heapq에 튜플형식으로 저장하고 출력하면 된다.

💻 계획 수행

import heapq
import sys

if __name__ == '__main__':
    heap = []
    N = int(input())
    for _ in range(N):
        num = int(sys.stdin.readline().rstrip())
        if num:
            heapq.heappush(heap, (abs(num), num))
        else:
            if heap:
                print(heapq.heappop(heap)[1])
            else:
                print(0)

🤔 회고

파이썬의 heaqp에 약간의 트릭을 쓰면 풀 수 있는 문제이다.

profile
https://github.com/joonyeolsim

0개의 댓글