728x90
λ°μν
1. νμ
- λ§μ μμ λ°μ΄ν° μ€μμ μνλ λ°μ΄ν°λ₯Ό μ°Ύλ κ³Όμ μ μΌμ»«μ
- λνμ μΈ κ·Έλν νμ μκ³ λ¦¬μ¦ : DFS , BFS
2. DFS(Depth-First Search)
- κΉμ΄ μ°μ νμ
- κ·Έλνμμ κΉμ λΆλΆμ μ°μ μ μΌλ‘ νμνλ μκ³ λ¦¬μ¦μ μλ―Έν¨
- μ€ν μλ£κ΅¬μ‘° or μ¬κ·ν¨μ νμ©
- κΌ μ΄μ§νΈλ¦¬μΌ νμκ° μμ!
- νμ μμ λ Έλλ₯Ό μ€νμ μ½μ ν, λ°©λ¬Έ μ²λ¦¬
- μ€νμ μ΅μλ¨ λ Έλμ λ°©λ¬Ένμ§ μμ μΈμ ν λ Έλκ° νλλΌλ μμΌλ©΄ κ·Έ λ Έλλ₯Ό μ€νμ λ£κ³ λ°©λ¬Έ μ²λ¦¬. λ°©λ¬Ένμ§ μμ μΈμ λ Έλκ° μμΌλ©΄ μ€νμμ μ΅μλ¨ λ Έλλ₯Ό κΊΌλ
- λ μ΄μ 2λ²μ κ³Όμ μ μνν μ μμ λκΉμ§ λ°λ³΅





def dfs(graph, v, visited): visited[v] =True print(v, end=' ') for i in graph[v]: #2,3,8 (κ·Έλν μμ κ°λ€ (μΈμ ν λ
Έλλ€μ μλ―Έ)) if not visited[i]: dfs(graph,i,visited)
graph=[ [], [2,3,8], #1λ²λ
Έλμ μΈμ ν λ
Έλλ€ [1,7], #2λ² λ
Έλμ μ°κ²°λ λ
Έλ [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] visited= [False]*9 dfs(graph,1,visited)
3. BFS(Breath-First Search)
- λλΉ μ°μ νμ
- κ°κΉμ΄ λ ΈλλΆν° μ°μ μ μΌλ‘ νμνλ μκ³ λ¦¬μ¦
- ν μλ£κ΅¬μ‘°λ₯Ό νμ©
- νμ μμ λ Έλλ₯Ό νμ μ½μ νκ³ λ°©λ¬Έ μ²λ¦¬
- νμμ λ Έλλ₯Ό κΊΌλΈ λ€, ν΄λΉ λ Έλμ μΈμ λ Έλ μ€μμ λ°©λ¬Ένμ§ μμ λ Έλλ₯Ό λͺ¨λ νμ μ½μ ν, λ°©λ¬Έ μ²λ¦¬
- λ μ΄μ 2λ²μ κ³Όμ μ μνν μ μμ λκΉμ§ λ°λ³΅



728x90
λ°μν