본문 바로가기
security/백준 알고리즘

백준 알고리즘 22단계 우선 순위 큐 - 큐의 절댓값 힙(11286번) Python

by aristia 2021. 5. 25.

이번에 풀어볼 문제는 큐의 절댓값 힙 문제이다.

해당 문제에 대한 링크는 아래에서 확인할 수 있다.

 

https://www.acmicpc.net/problem/11286

 

11286번: 절댓값 힙

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

www.acmicpc.net

 

1. 문제 확인

 

2. 문제 풀이

from queue import PriorityQueue
import sys
input = sys.stdin.readline

queue = PriorityQueue()
n = int(input())

for i in range(n):
    now = int(input())
    if now != 0:
        if now > 0:
            queue.put([now, 1])
        else:
            queue.put([now*-1, -1])
    else:
        if queue.empty():
            print(0)
        else:
            arr = queue.get()
            if arr[1] == 1:
                print(arr[0])
            else:
                print(arr[0]*-1)

댓글