1927번: 최소 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
- 단순하게 heap과 heap메서드를 이용하여 구현
#######################################################
import sys
import heapq
#######################################################
n = int(sys.stdin.readline())
l = []
for i in range(n):
inp = int(sys.stdin.readline())
if inp == 0: # input이 0일 경우
if len(l) == 0: # list에 원소가 없을 경우
print(0) # 그냥 0 출력
else: # list에 원소가 있다면
print(heapq.heappop(l)) # heapq.heappop(l) 메서드를 이용하면 자동으로
# 최소값을 출력하고 제거 해준다.
else: # input이 0이 아닌경우
heapq.heappush(l, inp) # heapq.heappush(l, inp) 메서드를 이용하여
# 최소값이 가장 앞으로 정렬된 상태로 삽입 해준다.
'Problem Solving > 백준' 카테고리의 다른 글
백준 절댓값 힙 - 11286 [파이썬, 자료 구조, 우선순위 큐] (0) | 2023.05.04 |
---|---|
백준 최대 힙 - 11279 [파이썬, 자료 구조, 우선순위 큐] (0) | 2023.04.22 |
백준 1076 저항 [파이썬, 구현] (0) | 2023.03.24 |
백준 9012 괄호 [파이썬, 자료 구조, 문자열, 스택] (0) | 2023.03.23 |
백준 23253 자료구조는 정말 최고야 [파이썬, 구현, 자료 구조, 애드 혹, 스택] (0) | 2023.03.22 |
댓글