성장일기
[python] 백준 11286 - 절댓값 힙 본문
Q
1. 배열에 정수 x를 넣는다
2. 배열에서 절댓값이 가장 작은 값을 출력하고,
같을 때는 가장 작은 수를 출력하고 그 값을 제거
A
첫째 줄에 연산의 개수 N
다음 N개의 줄에는 연산의 정보를 나타내는 x
만약 x가 0이 아니라면 추가하는 연산
0이면 절댓값이 가장 작은 값을 출력하고 제거
🧨 이 문제랑 거의 똑같다.
Priority Queue를 썼고
큐에 넣어줄 때, 절댓값을 넣어줬다는 것 외에
다른 것이 없다.
import sys
input=sys.stdin.readline
import queue
q=queue.PriorityQueue()
n=int(input().rstrip()) # 연산의 개수 N
for i in range(n):
x=int(input().rstrip()) # 연산 X 받아오기
if x==0: # x가 0이면 절댓값이 가장 작은것 반환
if q.qsize()==0: # 배열이 비어있는 경우
print(0) #0을 반환
else: # 0이 아니면
print(q.get()[1]) # 값을 반환
else: # 배열에 넣는 연산
q.put((abs(x),x))
'알고리즘 문제' 카테고리의 다른 글
[python] 백준 10815 - 숫자 카드 (0) | 2022.01.16 |
---|---|
[python] 백준 10989 - 수 정렬하기 3 (0) | 2022.01.14 |
[python] 백준 10816 - 숫자 카드 2 (0) | 2022.01.13 |
[python] 백준 17390 - 이건 꼭 풀어야해! (0) | 2022.01.11 |
[python] 백준 11441 - 합 구하기 (0) | 2022.01.11 |