πŸ“’ 깊이/λ„ˆλΉ„ μš°μ„  탐색(DFS/BFS)

KimdongkiΒ·2024λ…„ 3μ›” 29일

μ•Œκ³ λ¦¬μ¦˜

λͺ©λ‘ 보기
7/8

πŸ“Œ 사전지식

  1. κ·Έλž˜ν”„(graphs)
    • 정점(vertex, node)κ³Ό κ°„μ„ (edge, link)
    • 유ν–₯(directed)κ·Έλž˜ν”„μ™€ 무ν–₯(undirected)κ·Έλž˜ν”„
  2. μŠ€νƒ(stack)
  3. 큐(queue)

ν•œ μ •μ μ—μ„œ μΈμ ‘ν•œ λͺ¨λ“ (λ°©λ¬Έν•˜μ§€ μ•Šμ€) 정점을 λ°©λ¬Έν•˜λ˜, 각 인접 정점을 κΈ°μ€€μœΌλ‘œ
깊이 μš°μ„  탐색을 끝낸 ν›„ λ‹€μŒ μ •μ μœΌλ‘œ μ§„ν–‰ν•œλ‹€.

μ§„ν–‰ μˆœμ„œ
0 -> 1 -> 3 -> 7 -> 4 -> 5 -> 2 -> 6

μŠ€νƒμ„ μ΄μš©ν•˜μ—¬ μ–΄λŠ μ •μ μ—μ„œ DFSλ₯Ό ν•˜κ³  μžˆλŠ”μ§€λ₯Ό κΈ°μ–΅ν•˜κ³  λ˜λŒμ•„κ°„λ‹€.

πŸ“‘λ¬Έμ œ μ‘μš© - Lv.3 μ—¬ν–‰κ²½λ‘œ

  • ν•œ λ²ˆμ— μ§„ν–‰
    -> 이것이 κ°€λŠ₯함은 λ¬Έμ œμ—μ„œ 보μž₯λ˜μ–΄ μžˆλ‹€.
  • μ‹œμž‘ 정점은 μ–Έμ œλ‚˜"ICN"
  • λͺ¨λ“  정점 방문이 μ•„λ‹ˆκ³ , λͺ¨λ“  간선을 κ±°μ³μ•Όν•œλ‹€.
    -> μ–Έμ  κ°€λŠ” ν•œ 번 κ°€μ•Ό ν•˜λŠ”λ° κ·Έ μˆœμ„œλ₯Ό κ²°μ •ν•΄μ•Ό ν•œλ‹€.
  • ν•œ μ •μ μ—μ„œ 택할 수 μžˆλŠ” 간선이 두 개 이상인 경우
    -> 곡항 μ΄λ¦„μ˜ μ•ŒνŒŒλ²³ μˆœμ„œλ₯Ό λ”°λ₯Έλ‹€.

ν•œ μ •μ μ—μ„œ μΈμ ‘ν•œ λͺ¨λ“ (λ°©λ¬Έν•˜μ§€ μ•Šμ€) 정점을 λ°©λ¬Έν•˜κ³ , λ°©λ¬Έν•œ 각 인접 정점을
κΈ°μ€€μœΌλ‘œ(λ°©λ¬Έν•œ μˆœμ„œμ— 따라) λ˜λ‹€μ‹œ λ„ˆλΉ„ μš°μ„  탐색을 μ§„ν–‰ν•œλ‹€.

μ§„ν–‰ μˆœμ„œ
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7

큐λ₯Ό μ΄μš©ν•˜μ—¬ μ–΄λŠ μ •μ μ—μ„œ BFSλ₯Ό ν•΄μ•Ό ν•˜λŠ”μ§€λ₯Ό κΈ°λ‘ν•˜κ³  μ§„ν–‰ν•œλ‹€.

0개의 λŒ“κΈ€