
💡 해결 방법
- 파이썬 우선순위 큐를 사용하면 쉽게 해결되는 문제
- 절댓값이 작은 순서대로 출력하되, 절댓값이 같은 숫자가 있으면 음수 먼저 출력
- 이를 해결하기 위해 우선순위 큐에 정렬 기준을 새로 적용하여 사용
- stack.put((abs(input), input))으로 하여 절댓값이 정렬 기준이 됨
- 정렬 기준 이후에 원래 우선순위 큐 방식인 오름차순으로 pop됨
- stack.put() 안에 괄호로 한 번 더 묶어주어야 적용됨!!
📌 PriorityQueue
from queue import PriorityQueue
que = PriorityQueue()
que.put(1)
que.get()
que.put((1, 'hi'))
que.put((3, 'sy'))
que.put((2, 'im'))
que.get()[1]
que.get()[1]
que.get()[1]
🖥️ 코드
import sys
from queue import PriorityQueue
N = int(sys.stdin.readline())
stack = PriorityQueue()
for i in range(N):
input = int(sys.stdin.readline())
if input != 0:
stack.put((abs(input), input))
else:
if stack.empty():
print(0)
else:
print(stack.get()[1])
✏️ 알고리즘 분류