π Kahn μκ³ λ¦¬μ¦
π Kahn μκ³ λ¦¬μ¦
- μ ν₯ κ·Έλνμμ μμ μ λ ¬(Topological sorting)μ μννλ μκ³ λ¦¬μ¦ μ΄λ€.
π‘ TIP : μμ μ λ ¬μ΄λ?
- μμκ° μ‘΄μ¬νλ μμ λ€μ μ λ ¬νλ κ³Όμ μΌλ‘, μ¬μ΄ν΄μ΄ μλ λ°©ν₯ λΉμν κ·Έλνμμλ§ μν κ°λ₯νλ€.
- μμλ‘ μ μ κ³Όλͺ©, νλ‘μ νΈ μμ μμ, ν¨ν€μ§ μμ‘΄μ± ν΄κ²° λ±λ±
π Kahn μκ³ λ¦¬μ¦ λμ μ리
- μ§μ
μ°¨μ(in-degree)λ₯Ό κ³μ°νλ€.
- μ§μ μ°¨μλ νΉμ λ Έλλ‘ λ€μ΄μ€λ κ°μ μ κ°μλ₯Ό μλ―Ένλ€.
- μ§μ
μ°¨μκ° 0μΈ λ
Έλλ₯Ό ν(queue)μ μ½μ
νλ€.
- μ§μ μ°¨μκ° β0βμ΄λ κ²μ μ μ 쑰건μμ΄ μμν μ μλ κ³Όλͺ©μ΄λΌκ³ ν μ μλ€.
- νμμ λ
Έλλ₯Ό νλμ© κΊΌλ΄λ©° μμ μ λ ¬μ μννλ€.
- κΊΌλΈ λ Έλμ μ°κ²°λ κ°μ μ μ κ±°νκ³ , ν΄λΉ λ Έλμμ μ΄λν μ μλ λ Έλλ€μ μ§μ μ°¨μλ₯Ό 1 κ°μμν¨λ€.
- κ°μ ν μ§μ μ°¨μκ° 0μ΄ λ λ Έλλ νμ μ½μ νλ€.
- λͺ¨λ λ
Έλλ₯Ό λ°©λ¬Ένλ©΄ μ λ ¬ μλ£!
- λͺ¨λ λ Έλλ₯Ό λ°©λ¬Ένμ§ λͺ»νκ³ νκ° λΉμ΄λ²λ¦°λ€λ©΄ μ¬μ΄ν΄ μ΄ μ‘΄μ¬νλ κ²μ΄λ€.
π Kahn μκ³ λ¦¬μ¦μ νμ©ν Leecode λ¬Έμ !!
π μκ° λ³΅μ‘λ κ³μ°
- degree κ³μ° : O(E)
- νμ μ½μ λ° μ κ±° : O(V)
- μμ μ λ ¬ μν : O(V+E)
κ²°κ³Όμ μΌλ‘ Kahn μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ O(V+E) (V : λ Έλ μ, E : κ°μ μ)μ΄λ€.
π Kahn μκ³ λ¦¬μ¦μ νΉμ§
- μ ν₯ λΉμν κ·Έλνμμλ§ λμκ°λ₯
- BFSκΈ°λ°μΌλ‘ μνλλ©° μ§μ μ°¨μ(in-degree)λ₯Ό μ¬μ©
- μ¬μ΄ν΄μ΄ μλ κ²½μ° μμ μ λ ¬μ λ§λ€ μ μμ -> μ΄λ₯Ό ν΅ν΄ μ¬μ΄ν΄ κ²μΆ κ°λ₯!!