성장일기

[python] 백준 11286 - 절댓값 힙 본문

알고리즘 문제

[python] 백준 11286 - 절댓값 힙

김몽몽 2022. 1. 14. 10:24

Q

1. 배열에 정수 x를 넣는다

2. 배열에서 절댓값이 가장 작은 값을 출력하고,
같을 때는 가장 작은 수를 출력하고 그 값을 제거

 

A

첫째 줄에 연산의 개수 N

다음 N개의 줄에는 연산의 정보를 나타내는 x

만약 x가 0이 아니라면 추가하는 연산

0이면 절댓값이 가장 작은 값을 출력하고 제거

 

 

🧨 이 문제랑 거의 똑같다.

Priority Queue를 썼고

큐에 넣어줄 때, 절댓값을 넣어줬다는 것 외에

다른 것이 없다.

 

[python] 백준 1927 - 최소 힙

import sys import queue q=queue.PriorityQueue() n=int(sys.stdin.readline().rstrip()) for i in range(n): a=int(sys.stdin.readline().rstrip()) if a==0: if q.qsize()==0: print(0) else: print(q.get()[1]..

hyojeong94.tistory.com

 

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))