728x90
[사용한 알고리즘]
힙
[알고리즘]
1. 연산에 대한 정보를 입력받는다.
2. 0인 경우
- 힙이 비어있으면 0을 출력한다.
- 그 외의 경우 절댓값이 가장 작은 값을 출력하고 힙에서 해당 값을 제거한다.
3. 0이 아닌 경우 값을 힙에 추가한다.
[코드]
import heapq
import sys
if __name__ == "__main__":
# 연산의 개수 입력
n = int(sys.stdin.readline())
# 배열 선언
q = []
# 연산의 개수만큼 반복
for _ in range(n):
# 연산에 대한 정보 입력
tmp = int(sys.stdin.readline())
if tmp == 0:
# 힙이 비어있는 경우
if len(q) == 0:
print(0)
else:
# 절댓값이 가장 작은 값 출력 및 제거
print(heapq.heappop(q)[1])
else:
# 값 추가
heapq.heappush(q, [abs(tmp), tmp])
728x90