본문 바로가기
Errors_Tips

파이썬 heap 사용법: 파이썬 최소힙, 최대힙

by 지기_ 2021. 7. 6.
반응형

[MinHeap]

 

기본적으로 heap을 만들면 minheap (작은 것에서 큰 것으로 높아지는 방향)이다.

h=[]
heapq.heappush(h,(1))
heapq.heappush(h,(3))
heapq.heappush(h,(2))
heapq.heappush(h,(7))
heapq.heappush(h,(10))
heapq.heappush(h,(12))


while h:
  cur = heapq.heappop(h)
  print(cur)

답:

1
2
3
7
10
12

 

[MaxHeap]

음수를 넣고 뽑아서 다시 -1을 곱해준다

h=[]
heapq.heappush(h,(-1))
heapq.heappush(h,(-3))
heapq.heappush(h,(-2))
heapq.heappush(h,(-7))
heapq.heappush(h,(-10))
heapq.heappush(h,(-12))


while h:
  cur = heapq.heappop(h)
  print(-cur)

답:

12
10
7
3
2
1

 

반응형

댓글