1 사용한 자료구조 및 개념 : heap
💡 문제풀이 아이디어 및 어려웠던 점
💫 아이디어
1️⃣ 입력된 x 값이 0이 아닌 경우, x 값을 추가한다.
2️⃣ 절대값이 작은 순서대로, 그리고 실제 값이 작은 순서대로 정렬시킨다.
3️⃣ 입력된 x 가 0인 경우, 힙에서 값을 추출하고 출력한다.
4️⃣ heapq.heappop 은 힙에서 가장 작은 값을 제거하고 그 값을 반환한다.
5️⃣ 튜플 형태로 저장하기 때문에 [1] 인덱스를 사용한다.
6️⃣ 힙이 비어 있다면 0을 출력한다.
Solution Code & 주석
import heapq
import sys
# 입력받을 연산의 개수
N = int(input())
# 힙 초기화
heap = []
for _ in range(N):
x = int(sys.stdin.readline())
# x가 0이 아니면 힙에 추가
if x != 0:
heapq.heappush(heap, (abs(x), x))
else:
# 힙이 비어있지 않다면 가장 작은 값을 출력하고 제거
if heap:
print(heapq.heappop(heap)[1])
# 힙이 비어있다면 0을 출력
else:
print(0)
'💡Algorithm > python' 카테고리의 다른 글
[python]21942_부품 대여장 (0) | 2023.09.05 |
---|---|
[python]2696_중앙값 구하기 (0) | 2023.08.23 |
[python]4385_생태학 (0) | 2023.08.09 |
[python]1620_나는야 포켓몬 마스터 이다솜 (0) | 2023.08.07 |
[python]1918_후위 표기식 (0) | 2023.08.01 |