문제 보러 가기 👈 클릭!
python의 heap은 최소힙. =>인덱스0에 최솟값 존제
최소값 제거 => heapq.heappop()
최대값 제거 => 정렬 후, pop() => 정렬하면 최대값이 맨 마지막 인덱스에 존재하므로 pop()하면 최대값이 삭제 됨
import heapq
def solution(operations):
q = []
for operation in operations:
op, num = operation.split()
if op == 'I':
heapq.heappush(q, int(num))
elif q and op == 'D': #삭제 연산
if num == '-1': #최솟값 삭제
heapq.heappop(q)
else: #최댓값 삭제
q.sort()
q.pop()
if not q: #q가 비어있을 경우
return [0, 0]
q.sort() #q가 비어있지 않을 경우
return [q[-1], q[0]]
최대값 제거 => max로 최대값 구하고 remove로 제거
import heapq
def solution(operations):
answer = []
q = []
for operation in operations:
op, num = operation.split()
if op == 'I': #삽입
heapq.heappush(q, int(num))
elif q and op == 'D': #삭제
if num == '-1': #최솟값 삭제
heapq.heappop(q)
else: #최대값 삭제
q.remove(max(q))
if not q:
return [0, 0]
return [max(q), q[0]]