DFS(Depth-First Search)

๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด๋ž€

DFS (Depth-First Search)๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋กœ, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ƒํƒœ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” DFS์˜ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

  1. ์Šคํƒ ๋˜๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜ ์‚ฌ์šฉ: DFS๋Š” ์Šคํƒ(Stack) ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ •์ ์„ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ์ •์ ์„ ์Šคํƒ์— ๋„ฃ๊ฑฐ๋‚˜, ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๊นŠ์ด ์šฐ์„ ์œผ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  2. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰: DFS๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๊นŠ์ด ์šฐ์„ ์œผ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•œ ์ •์ ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ํ•ด๋‹น ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์ ์„ ๊ณ„์† ๋ฐฉ๋ฌธํ•˜๋‹ค๊ฐ€ ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์—†๋Š” ์ •์ ์— ๋„๋‹ฌํ•˜๋ฉด ๋˜๋Œ์•„๊ฐ€ ์ด์ „ ์ •์ ์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์„œ ํƒ์ƒ‰์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ฐฉ๋ฌธํ•œ ์ •์  ํ‘œ์‹œ: ๊ฐ ์ •์ ์„ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ์ •์ ์„ ์ด๋ฏธ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๋Š” ํ‘œ์‹œ๋ฅผ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ™์€ ์ •์ ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์žฌ๊ท€ ํ˜ธ์ถœ: DFS๋ฅผ ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์Šคํƒ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ข…๋ฃŒํ•  ์กฐ๊ฑด์„ ๋ช…ํ™•ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  5. ๊ทธ๋ž˜ํ”„์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ฅธ ์ ์šฉ: DFS๋Š” ๊ทธ๋ž˜ํ”„์˜ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์™€ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„, ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฌธ์ œ์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๋ฐฉ์‹์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

How do code?

Last updated