Heapq 🐳

YaR LabΒ·2023λ…„ 7μ›” 9일

python 🐳

λͺ©λ‘ 보기
5/10
post-thumbnail

1️⃣ μ •μ˜

μš°μ„ μˆœμœ„ 큐 μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³ λ„ ν•˜λŠ” νž™(heap) 큐 μ•Œκ³ λ¦¬μ¦˜μ˜ κ΅¬ν˜„μ„ μ œκ³΅ν•˜λŠ” 라이브러리
pythonμ—μ„œ defaultλŠ” min_heap

  • heapq λͺ¨λ“ˆμ„ ν•˜λ‚˜μ˜ 객체둜 κ°€μ Έμ˜€λŠ” 방식
import heapq
test_heap =[]
heapq.heapify(test_heap)
  • heapq λͺ¨λ“ˆμ˜ λͺ¨λ“  ν•¨μˆ˜μ™€ 클래슀λ₯Ό ν˜„μž¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ κ°€μ Έμ˜€λŠ” 방식
from heapq import *
test_heap =[]
heapify(test_heap)

πŸ“Œ heappush

νž™ λΆˆλ³€μ„±μ„ μœ μ§€ν•˜λ©΄μ„œ, item값을 heap으둜 ν‘Έμ‹œ

heapq.heappush(heap, item)

πŸ“Œ heappop

νž™ λΆˆλ³€μ„±μ„ μœ μ§€ν•˜λ©΄μ„œ, heapμ—μ„œ κ°€μž₯ μž‘μ€ ν•­λͺ©μ„ νŒν•˜κ³  λ°˜ν™˜

heapq.heappop(heap)
  • νž™μ΄ λΉ„μ–΄ 있으면,`IndexErrorκ°€ λ°œμƒ

πŸ“Œ heapify

리슀트 xλ₯Ό O(N)μ‹œκ°„μœΌλ‘œ μ œμžλ¦¬μ—μ„œ νž™μœΌλ‘œ λ³€ν™˜

heapq.heapify(x)

μΆœμ²˜πŸ“š

πŸ“˜Python Docs: heapq
https://www.acmicpc.net/board/view/119137

0개의 λŒ“κΈ€