rueki

BOJ 11286. 절대값 힙 본문

python

BOJ 11286. 절대값 힙

륵기 2022. 10. 6. 01:02
728x90
반응형

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

 

11286번: 절댓값 힙

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

www.acmicpc.net

입력 숫자가 0이 아닌 경우에 우선순위 큐에 입력하고 0이 되면 출력하는 구조이다.

대신 절대값이 작은것을 출력하기에 단순하게 우선순위를 정하면 잘못된 출력을 내보내게 된다.

그래서 우선순위 큐에 절대값과 원래 입력값을 같이 입력받는다. 이렇게 되면 절대값 기준으로 정렬을 하게 되며 같은 경우에 원래 값 순서대로 나열되게 된다.

 

import sys
from queue import PriorityQueue

q = PriorityQueue()

input = sys.stdin.readline
n = int(input())

result = []
for _ in range(n):
    number = int(input())
    
    if number != 0:
        q.put((abs(number), number))
    else:
        if q.empty():
            result.append(0)
        else:
           result.append(q.get()[1]) 

for i in range(len(result)):
    print(result[i])
728x90
반응형

'python' 카테고리의 다른 글

BOj 2178. 미로찾기 (BFS)  (0) 2022.10.09
BOJ 2023. 신기한 소수 찾기 (DFS)  (0) 2022.10.06
BOJ 2164. 카드2  (0) 2022.10.06
BOJ 17298. 오큰수 (Stack)  (0) 2022.10.05
BOJ 1940. 주몽 (투 포인터)  (1) 2022.10.04
Comments