코딩테스트 대비/BOJ

[Baekjoon/Python] 11286번: 절댓값 힙 - 효과는 굉장했다!

bluetag_boy 2022. 2. 11. 04:10
반응형
 

11286번: 절댓값 힙

첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

 

알고리즘 분류

  • 자료 구조
  • 우선순위 큐

 

 

SOLUTION

import sys
import heapq

N = int(sys.stdin.readline())
heap = []

for _ in range(N):
    x = int(sys.stdin.readline())

    if x != 0:
        if x < 0:
            heapq.heappush(heap, [-x,x])
        
        else:
            heapq.heappush(heap, [x,x])
        
    else: 
        if heap == []:
            print(0)

        else:
            print(heapq.heappop(heap)[1])