728x90
http://www.acmicpc.net/problem/11286
# 조건
- 배열에 정수 x를 넣는다.
- 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거
- 절댓값이 가장 작은 값이 여러 개일 때는, 가장 작은 수를 출력하고, 배열에서 제거
- 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어있는 경우에 0이 주어진다면 0을 출력
# 접근 방법
- heapq 모듈을 사용해준다.
- abs를 이용하여 값을 넣어줄껀데 ( abs(x), x) 와 같이 튜플로 묶어서 넣어준다.
from heapq import heappush, heappop
import sys
input = sys.stdin.readline
arr = []
n = int(input())
for _ in range(n):
a = int(input())
if not a == 0:
heappush(arr, (abs(a), a))
elif a == 0 and arr:
i, j = heappop(arr)
print(j)
elif a == 0 and not arr:
print(0)
728x90
'ALGORITHM > 자료구조' 카테고리의 다른 글
[백준 1202번] 파이썬 - 보석 도둑 (0) | 2022.12.01 |
---|---|
[백준 1043번] 파이썬 - 거짓말 (0) | 2022.11.30 |
[백준 5430번] 파이썬 - AC (0) | 2022.10.11 |
[백준 7662번] 파이썬 - 이중 우선순위 큐 (0) | 2022.10.09 |
[백준 1764번] 파이썬 - 듣보잡 (0) | 2022.10.05 |