operations | return |
---|---|
["I 16","D 1"] | [0,0] |
["I 7","I 5","I -5","D -1"] | [7,5] |
힙 자료구조 사용.
- 최소힙에서 최댓값 찾기
=>heapq.nlargest(개수, 리스트)
는 리스트에서 개수만큼 최댓값을 찾아 리스트를 반환한다.
import heapq
def solution(operations):
heap = []
for o in operations:
a, b = o.split()
if a == 'I':
heapq.heappush(heap, int(b))
elif a == 'D':
if len(heap) > 0:
if b == '-1':
heapq.heappop(heap)
elif b == '1' :
heap.pop(heap.index(heapq.nlargest(1, heap)[0]))
if len(heap) >= 2:
return [heapq.nlargest(1, heap)[0], heapq.heappop(heap)]
else:
return [0, 0]