rueki
BOJ 11286. 절대값 힙 본문
728x90
반응형
https://www.acmicpc.net/problem/11286
입력 숫자가 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