sort()
, sorted()
를 활용할 때 key = lambda : 정렬 기준
를 활용하면 특정 기준에 맞게 정렬할 수 있다.
set_lst.sort(key= lambda x: (len(x), x))
: 각 노드의 키 값이 그 자식노드의 키 값보다 작지 않은 힙
key(T.parent(v)) > key(v)
:각 노드의 키 값이 그 자식노드의 키 값보다 크지 않은 힙
key(T.parent(v)) < key(v)
import sys
import heapq
input = sys.stdin.readline
N = int(input())
heap = []
for i in range(N):
x = int(input())
#x가 자연수인 경우 - 값을 추가
if x != 0:
heapq.heappush(heap, -x)
#기본은 그냥 최소힙 -> 마이너스를 붙여 최대힙으로 구현한다.
#x가 0인 경우 - 배열에서 가장 큰 값 출력/ 그 값을 배열에서 제거
else:
if len(heap) == 0:
print(0)
else:
print(heapq.heappop(heap)*-1)