[νμ΄μ¬/python] ν (heap)
νμ μ΅λκ° λ° μ΅μκ°μ μ°Ύμλ΄λ μ°μ°μ λΉ λ₯΄κ² νκΈ° μν΄ κ³ μλ μμ μ΄μ§νΈλ¦¬ κΈ°λ°μ μλ£κ΅¬μ‘°μ΄λ€.
νμ λΆλͺ¨λ Έλμ μμλ Έλμ κ΄κ³λ‘ μ΅λ ν, μ΅μ νμΌλ‘ λλλ€.
ν€ κ°μ λμκ΄κ³λ λΆλͺ¨λ Έλμ μμλ Έλ κ°μλ§ μ±λ¦½νλ©° νμ μ¬μ΄μλ μ±λ¦½νμ§ μμ μ μλ€.
- μ΅λ ν : λΆλͺ¨λ Έλ ν€ κ° >= μμλ Έλ ν€ κ°. λΏλ¦¬λ Έλκ° νμ μ μΌ νΌ
- μ΅μ ν : λΆλͺ¨λ Έλ ν€ κ° <= μμλ Έλ ν€ κ°. λΏλ¦¬λ Έλκ° νμ μ μΌ μμ
λ°°μ΄μ μλ λ°μ΄ν°μ μ΅λκ° λλ μ΅μκ°μ μ°ΎμΌλ €λ©΄ O(n)μ΄ κ±Έλ¦¬μ§λ§
νμ μλ λ°μ΄ν°μ μ΅λκ° λλ μ΅μκ°μ μ°ΎμΌλ €λ©΄ O(logn)μ΄ κ±Έλ¦¬λ―λ‘ λ ν¨μ¨μ μ΄λ€.
νμΌλ‘ ꡬνλ μ΄μ§νΈλ¦¬κ΅¬μ‘°λ λ°°μ΄λ‘ μ μ₯λλ€.
μμλ‘ μ΄ν΄νκΈ°
μλμ μμλ μ΅λ νμΌλ‘ μ λ ¬λ νΈλ¦¬ κ΅¬μ‘°κ° μμ λ 20μ μΆκ°νλ κ³Όμ μ΄λ€.
μμ±λ μ΄μ§νΈλ¦¬λ₯Ό λ°°μ΄λ‘ λνλ΄λ©΄ μλμ κ°λ€.
[20, 13, 15, 3, 8, 10]
νμ΄μ¬μΌλ‘ ꡬννκΈ°
μ΅μν ꡬν
νμ΄μ¬μμλ λ΄μ₯ λͺ¨λ heapqλ₯Ό μ΄μ©νμ¬ κ°λ¨ν ꡬνν μ μλ€.
heapq λͺ¨λμ import ν ν μ μ₯ν λ°°μ΄ heapμ λ§λ λ€.
- heappush : λ°°μ΄ heapμ μμ μΆκ°
- heappop : λ°°μ΄ heapμ κ°μ₯ μμ μμ μμ
- heapify : κΈ°μ‘΄ 리μ€νΈλ₯Ό νμΌλ‘ λ³ν
import heapq
heap = []
# heappush
heapq.heappush(heap, 5)
# heappop
heapq.heappop(heap)
# heapify
list = [3, 6, 8, 2]
heapq.heapify(list)
'πμκ³ λ¦¬μ¦ > π κ°λ μ 리' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νμ΄μ¬/python] λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦ (Dijkstra Algorithm) (0) | 2021.09.02 |
---|---|
[νμ΄μ¬/python] DFS, BFS ꡬν (μ¬κ·) (0) | 2021.07.03 |
[νμ΄μ¬/python] μ§ν© (0) | 2021.04.05 |
[νμ΄μ¬/python] DFSμ BFS (0) | 2021.04.05 |
[μκ³ λ¦¬μ¦] λΈλ£¨νΈν¬μ€ μκ³ λ¦¬μ¦ (Brute Force) (0) | 2021.04.02 |