728x90
https://www.acmicpc.net/problem/11286
import sys, heapq
n = int(sys.stdin.readline())
heap = []
for _ in range(n):
x = int(sys.stdin.readline())
if not heap and x == 0: #1
print(0)
elif x != 0: #2
heapq.heappush(heap, (abs(x), x))
elif x == 0: #3
print(heapq.heappop(heap)[1])
#1 : heap이 비어있고 입력값이 0인 경우 0을 출력
#2 : 입력값이 0이 아닌경우 튜플로 묶어서 절댓값과 일반값을 같이 삽입
heap 자료구조에서 튜플의 첫번째 원소를 기준으로 정렬됨
#3 : 입력값이 0인 경우 튜플의 두번째 원소를 출력
이전에 올린 두 문제 11279 최대 힙(https://hgk5722.tistory.com/66), 1927 최소 힙(https://hgk5722.tistory.com/67)과 비슷한 문제다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 1541 파이썬(python) : 잃어버린 괄호 - (★) (0) | 2022.06.20 |
---|---|
[백준] 1655 파이썬(python) : 가운데로 말해요 - 상세해설 (0) | 2022.06.20 |
[백준] 1927 파이썬(python) : 최소 힙 (0) | 2022.06.19 |
[백준] 11279 파이썬(python) : 최대 힙 (0) | 2022.06.19 |
[백준] 11478 파이썬(python) : 서로 다른 부분 문자열의 개수 - (★) (0) | 2022.06.18 |