Guidelines

λ„ˆλΉ„ μš°μ„  탐색(BFS)μ΄λž€?

λ„ˆλΉ„ μš°μ„  탐색은 κ·Έλž˜ν”„ λ˜λŠ” 트리λ₯Ό 탐색할 λ•Œ, ν•œ λ…Έλ“œμ—μ„œ μ‹œμž‘ν•˜μ—¬ λ ˆλ²¨λ³„λ‘œ μΈμ ‘ν•œ λ…Έλ“œλ₯Ό λ¨Όμ € νƒμƒ‰ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€.


ν‚€μ›Œλ“œ

  • 큐(Queue): BFSλŠ” 큐λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°©λ¬Έν•  λ…Έλ“œλ“€μ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

  • λ ˆλ²¨λ³„ 탐색: BFSλŠ” 각 λ…Έλ“œμ˜ λ ˆλ²¨λ³„λ‘œ μΈμ ‘ν•œ λ…Έλ“œλ₯Ό νƒμƒ‰ν•©λ‹ˆλ‹€.

  • μ΅œλ‹¨ 경둜: BFSλŠ” μ‹œμž‘ λ…Έλ“œμ—μ„œ λͺ©ν‘œ λ…Έλ“œκΉŒμ§€μ˜ μ΅œλ‹¨ 경둜λ₯Ό μ°ΎλŠ” 데 자주 μ‚¬μš©λ©λ‹ˆλ‹€.

  • μ‹œκ°„ λ³΅μž‘λ„: (O(|V| + |E|)), μ—¬κΈ°μ„œ (|V|)λŠ” μ •μ μ˜ 수, (|E|)λŠ” κ°„μ„ μ˜ μˆ˜μž…λ‹ˆλ‹€.


BFS의 단계별 κ³Όμ •

  1. λ…Έλ“œ 선택: 탐색을 μ‹œμž‘ν•  λ…Έλ“œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

  2. λ°©λ¬Έ 및 탐색: μ„ νƒν•œ λ…Έλ“œλ₯Ό λ°©λ¬Έν•˜κ³ , μΈμ ‘ν•œ λ…Έλ“œλ₯Ό 큐에 μΆ”κ°€ν•©λ‹ˆλ‹€.

  3. λ ˆλ²¨λ³„ 탐색: νμ—μ„œ λ…Έλ“œλ₯Ό κΊΌλ‚΄ λ°©λ¬Έν•˜κ³ , κ·Έ 인접 λ…Έλ“œλ“€μ„ 큐에 μΆ”κ°€ν•©λ‹ˆλ‹€.

  4. 탐색 μ™„λ£Œ: 큐가 λΉ„μ–΄μžˆμ„ λ•Œ 탐색을 μ’…λ£Œν•©λ‹ˆλ‹€.


BFS의 νŠΉμ§•

  • λ„ˆλΉ„ μš°μ„ : 각 레벨의 λ…Έλ“œλ₯Ό νƒμƒ‰ν•œ ν›„ λ‹€μŒ 레벨의 λ…Έλ“œλ‘œ λ„˜μ–΄κ°‘λ‹ˆλ‹€.

  • 단측 탐색(Layered Search): λ…Έλ“œλ₯Ό λ ˆλ²¨λ³„λ‘œ νƒμƒ‰ν•˜μ—¬ 레벨이 λ™μΌν•œ λ…Έλ“œλ“€μ„ λ¨Όμ € λ°©λ¬Έν•©λ‹ˆλ‹€.

  • μ΅œλ‹¨ 경둜 탐색: BFSλŠ” 무방ν–₯ κ·Έλž˜ν”„μ—μ„œ μ‹œμž‘ λ…Έλ“œμ—μ„œ λͺ©ν‘œ λ…Έλ“œκΉŒμ§€μ˜ μ΅œλ‹¨ 경둜λ₯Ό μ°ΎλŠ” 데 νš¨κ³Όμ μž…λ‹ˆλ‹€.

  • 탐색 μˆœμ„œ: λ…Έλ“œμ˜ 탐색 μˆœμ„œλŠ” 큐의 κ΅¬ν˜„ 방식과 μ‹œμž‘ λ…Έλ“œμ— 따라 λ‹¬λΌμ§‘λ‹ˆλ‹€.


BFS의 μž₯단점

  • μž₯점: μ΅œλ‹¨ 경둜λ₯Ό μ°ΎλŠ”λ° 효과적이고, λͺ¨λ“  레벨의 λ…Έλ“œλ₯Ό λ°©λ¬Έν•©λ‹ˆλ‹€. λ„ˆλΉ„ μš°μ„  탐색은 μˆœν™˜ κ²½λ‘œκ°€ μžˆλŠ” κ·Έλž˜ν”„μ—μ„œλ„ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

  • 단점: BFSλŠ” DFS에 λΉ„ν•΄ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ΄ λ§Žμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  인접 λ…Έλ“œλ₯Ό μ €μž₯ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 큰 κ·Έλž˜ν”„μ—μ„œλŠ” λ©”λͺ¨λ¦¬ 뢀담이 클 수 μžˆμŠ΅λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help