κΉŠμ΄μš°μ„ νƒμƒ‰ 1

[μ•Œκ³ λ¦¬μ¦˜] DFS(Depth First Search, 깊이 μš°μ„  탐색)

DFSλž€? - κ·Έλž˜ν”„ 탐색 μ•Œκ³ λ¦¬μ¦˜ - 갈 수 μžˆλŠ” λκΉŒμ§€ 탐색해 리프 λ…Έλ“œλ₯Ό λ°©λ¬Έν•˜κ³ , 이전 κ°ˆλ¦ΌκΈΈμ—μ„œ μ„ νƒν•˜μ§€ μ•Šμ•˜λ˜ λ…Έλ“œλ₯Ό λ°©λ¬Έν•˜λŠ” 탐색 방법 - μŠ€νƒμœΌλ‘œ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜λ‹€. μŠ€νƒ λŒ€μ‹  μž¬κ·€ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ κ΅¬ν˜„ν•˜λŠ” κ²½μš°λ„ λ§Žλ‹€. μž¬κ·€ν•¨μˆ˜ μ‚¬μš© μ‹œ μ’…λ£Œ 쑰건을 λ°˜λ“œμ‹œ λͺ…μ‹œν•΄μ•Ό ν•œλ‹€. DFS κ΅¬ν˜„ - λ™μž‘ κ³Όμ • 1) 탐색 μ‹œμž‘ λ…Έλ“œλ₯Ό μŠ€νƒμ— μ‚½μž… ν›„ 방문처리 ν•œλ‹€. 2) μŠ€νƒμ˜ μ΅œμƒλ‹¨ λ…Έλ“œμ— λ°©λ¬Έν•˜μ§€ μ•Šμ€ 인접 λ…Έλ“œκ°€ ν•˜λ‚˜λΌλ„ μ‘΄μž¬ν•˜λ©΄ κ·Έ λ…Έλ“œλ₯Ό μŠ€νƒμ— λ„£κ³  방문처리 ν•œλ‹€. λ°©λ¬Έν•˜μ§€ μ•Šμ€ 인접 λ…Έλ“œκ°€ μ—†μœΌλ©΄ μŠ€νƒμ—μ„œ μ΅œμƒλ‹¨ λ…Έλ“œλ₯Ό κΊΌλ‚Έλ‹€. 3) 2번의 과정을 더이상 μˆ˜ν–‰ν•  수 없을 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•œλ‹€. def dfs(graph, start): vist = list() stack = list() stack.a..