κΉμ΄ μ°μ νμ(DFS) / λλΉ μ°μ νμ(BFS)
https://sustainable-dev.tistory.com/44
BFS(λλΉμ°μ νμ)μ DFS(κΉμ΄μ°μ νμ)
μκ³ λ¦¬μ¦μ 곡λΆνλ€κ° κΌ! μμμΌνλ λλΉμ°μ νμκ³Ό κΉμ΄μ°μ νμμ λν΄ μμλ³΄κ³ μ νλ€. μλ£κ΅¬μ‘°-νΈλ¦¬ ν¬μ€νΈμμ κ°λ³κ² νμ΄λ³΄κ³ λμ΄κ°μλλ°, μκ³ λ¦¬μ¦ λ¬Έμ μ μ μ©νκΈ° μν΄μλ
sustainable-dev.tistory.com
μ λΈλ‘κ·Έλ₯Ό λ³΄κ³ νμ¬
1. κΉμ΄ μ°μ νμ (DFS, Depth-First Search)
- μ€ν, μ¬κ·λ₯Ό μ¬μ©ν΄ μ΄λ€ μ μ μμ κ·Έ μ μ κ³Ό μ°κ²°λ μ μ κΉμ§ κ³μν΄μ λμκ°λ€ λͺ©ν μ μ μ μ°Ύμ§ λͺ»νλ©΄ λ€μ κ°μ₯ κ°κΉμ΄ μ μ μΌλ‘ λμμ λ€λ₯Έ κ²½λ‘λ₯Ό νν΄ μ¬νμ
- μ¬κΈ°μ λ€μ λλμμ€λ κ³Όμ : λ°±νΈλνΉ(Backtracking)
- λ°±νΈλνΉμ νλ κ³Όμ μμ LIFO λ°©μμΌλ‘ νμμ νλ€.
- DFSλ νμ¬ νμνκ³ μλ κ²½λ‘ μμ λ Έλλ€λ§ κΈ°μ΅νλ©΄ λκΈ° λλ¬Έμ BFSμ λΉν΄ μ μ₯ 곡κ°μ μμκ° λΉκ΅μ μ λ€.
- μ€νμ μ΄μ©νκΈ° λλ¬Έμ νμ μ μΆ(LIFO)μ λ°©μμΌλ‘ νμνλ€.
- μ₯μ : λ©λͺ¨λ¦¬ μλΉκ° μ μ (μ¬λ°λ₯Έ κ²½μ°μΈ κ²½μ°, μ΅μ μ€ν μκ° κ°μ§)
- λ¨μ : λ΄κ° λ°©λ¬Έν κΈΈμ΄ shortestμΈμ§ λͺ¨λ¦ (μ€λ μκ°)
2. λλΉ μ°μ νμ (BFS, Breadth-First Search)
- νλ₯Ό μ¬μ©νλ©° μ΄λ€ μ μ μ λ°©λ¬Έν ν, κ·Έ μ μ μ μ°κ²°λ λ€λ₯Έ μ μ λ€μ νμ μ€μ μΈμκ°λ©° μμ°¨μ μΌλ‘ λ°©λ¬Ένλλ°, λ°©λ¬Ένμ§ μμ μ μ μ΄ μμ λ (λ μ΄μ νμ λ¨μμλ μ μ μ΄ μμ λ)κΉμ§ λ€λ₯Έ λͺ¨λ μ μ λ€μ λν΄ λκ°μ λ°©μμΌλ‘ νμμ ν¨
- νμ λ¨Όμ λ€μ΄μ¨ μ μ μ΄ λ¨Όμ λνλκ³ , κ·Έ μ μ κ³Ό μ°κ²°λ μ μ λ€μ΄ νμ μΈνλλ FIFO νμ
- λ λ Έλ μ¬μ΄μ μ΅λ¨ κ²½λ‘λ₯Ό μ°Ύκ³ μΆμ λ μ΄ λ°©λ² μ¬μ©
- νλ₯Ό μ¬μ©νλ―λ‘ FIFO(μ μ μ μΆ)
- μ₯μ : κ°μ₯ κ°κΉμ΄ λ Έλ λ°©λ¬Έ -> μ΅λ¨ μ½μ€ (shortest path(μ΅μ ν΄)λ₯Ό 보μ₯ν¨)
- λ¨μ : λ©λͺ¨λ¦¬ μλΉκ° νΌ (exponentialν nodeμ μλ₯Ό κΈ°μ΅ν΄μΌ νλ―λ‘)