DFS, BFS

1. DFS & BFS ๋ž€?

  • ํ•œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•œ ํ›„, ๋‹ค์Œ ๋…ธ๋“œ๋กœ "๋๊นŒ์ง€" ๋“ค์–ด๊ฐ”๋‹ค๊ฐ€ , ๋” ์ด์ƒ ๊ฐˆ ๊ณณ์ด ์—†์œผ๋ฉด ๋˜๋Œ์•„์˜ค๋Š” ๋ฐฉ์‹์˜ ํƒ์ƒ‰

  • ์ฃผ๋กœ Stack ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉ(ํ˜น์€ ์žฌ๊ท€)

  • ํ•œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•œ ํ›„, ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ํ์— ๋„ฃ๊ณ , ํ์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋ฉฐ ํƒ์ƒ‰

  • ์ตœ๋‹จ๊ฑฐ๋ฆฌ ํƒ์ƒ‰ ๋ฌธ์ œ ์— ์œ ๋ฆฌ

  • Queue ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉ


2. ๊ณตํ†ต ๊ฐœ๋…

  • ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ( ํŠธ๋ฆฌ๋„ ๊ทธ๋ž˜ํ”„์˜ ์ผ์ข… )

  • ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ ๊ฐ€ ์ค‘์š” (๋ฌดํ•œ ๋ฃจํ”„ ๋ฐฉ์ง€)

  • ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ(List<List<Integer>> ) ๋‚˜ ์ธ์ ‘ ํ–‰๋ ฌ (int[][] ) ๋กœ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„ ๊ฐ€๋Šฅ


3. ์ฝ”๋“œ ์˜ˆ์ œ(Java)

์˜ˆ์ œ ๊ทธ๋ž˜ํ”„(๋ฌด๋ฐฉํ–ฅ, ์—ฐ๊ฒฐ)

์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„

DFS (์žฌ๊ท€)

  • ํ˜ธ์ถœ : dfs(1)

  • ์ถœ๋ ฅ : 1 2 4 3 ๋˜๋Š” 1 3 4 2 (ํƒ์ƒ‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)

BFS

  • ํ˜ธ์ถœ : bfs(1)

  • ์ถœ๋ ฅ : 1 2 3 4


4. DFS vs BFS ๋น„๊ต

ํ•ญ๋ชฉ
DFS
BFS

์ „๋žต

ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋๊นŒ์ง€ ํŒŒ๊ณ ๋“ฆ

๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰

์ž๋ฃŒ๊ตฌ์กฐ

์Šคํƒ / ์žฌ๊ท€

ํ

๊ตฌํ˜„ ๋‚œ์ด๋„

์žฌ๊ท€๋ฉด ๊ฐ„๋‹จ, ๋ฐ˜๋ณต์€ ๋ณต์žก

๋ฐ˜๋ณต๋ฌธ๋งŒ์œผ๋กœ ๊ฐ€๋Šฅ

์‚ฌ์šฉ ์˜ˆ์‹œ

๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ํƒ์ƒ‰ (๋ฐฑํŠธ๋ž˜ํ‚น, ๋ฏธ๋กœ, ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ ์š”์†Œ ํƒ์ƒ‰ ๋“ฑ)

์ตœ๋‹จ ๊ฑฐ๋ฆฌ, ๋ ˆ๋ฒจ ํƒ์ƒ‰ (์ตœ๋‹จ ๊ฒฝ๋กœ, ํผ์ง€๋Š” ๊ฒƒ ๋“ฑ)

์†๋„

๊นŠ์ด โ†’ ๋А๋ฆด ์ˆ˜ ์žˆ์Œ

๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ โ†’ ๋น ๋ฆ„

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ

๊นŠ์ด๊ฐ€ ๊นŠ์œผ๋ฉด ์Šคํƒ ๋งŽ์Œ

ํ์— ๋งŽ์€ ๋…ธ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ


5. ์‹ค์ œ ํ™œ์šฉ ์˜ˆ์‹œ

๋ฌธ์ œ ์œ ํ˜•
DFS
BFS

๋ฏธ๋กœ ์ฐพ๊ธฐ

โœ…

โœ… (์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์ฐพ์„ ๋•Œ BFS๊ฐ€ ๋” ์ ํ•ฉ)

์—ฐ๊ฒฐ ์š”์†Œ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

โœ…

โœ…

์‚ฌ์ดํด ํƒ์ง€

โœ…

โœ…

์„ฌ์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ (Flood Fill)

โœ…

โœ…

ํผ์ง€๋Š” ๋ฌธ์ œ (๋ถˆ, ๋ฐ”์ด๋Ÿฌ์Šค ๋“ฑ)

โŒ

โœ…

์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ

โŒ

โœ…

๋ฐฑํŠธ๋ž˜ํ‚น (n-Queen, ์กฐํ•ฉ)

โœ…

โŒ


6. ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„ ๋ฐฉ๋ฒ•

์ธ์ ‘ ๋ฆฌ์ŠคํŠธ(Sparse Graph ์— ์ ํ•ฉ)

์ธ์ ‘ ํ–‰๋ ฌ(Dense Graph ์— ์ ํ•ฉ)


7. ์‘์šฉ ์˜ˆ์‹œ

๋ฏธ๋กœ ์ตœ๋‹จ ๊ฒฝ๋กœ(BFS)


8. ์ •๋ฆฌ

ํฌ์ธํŠธ
DFS
BFS

๊ตฌํ˜„๋ฒ•

์žฌ๊ท€ / Stack

Queue

์ „ํ˜•์  ํŒจํ„ด

๋ฐฑํŠธ๋ž˜ํ‚น, ์™„์ „ํƒ์ƒ‰

์ตœ๋‹จ๊ฑฐ๋ฆฌ, ๋ ˆ๋ฒจ์ˆœ ํƒ์ƒ‰

๋ฐฉ๋ฌธ์ˆœ์„œ

๊นŠ์ด ์šฐ์„ 

๋„ˆ๋น„ ์šฐ์„ 

ํŠธ๋ฆฌ ๊ตฌ์กฐ

ํ›„์œ„ ์ˆœํšŒ์™€ ์œ ์‚ฌ

๋ ˆ๋ฒจ ์ˆœํšŒ

Last updated