โœ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Graph

2. DFS(Depth-Find-Search) : ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰

2021. 1. 22. 11:11
๋ชฉ์ฐจ
  1. DFS(Depth-Find-Search)
  2. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰

DFS(Depth-Find-Search)

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

 

์ง€๋‚œ ์‹œ๊ฐ„ BFS์— ์ด์–ด ์˜ค๋Š˜์€ DFS์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

DFS๋Š” Depth-Find-Search๋กœ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด๋‹ค. BFS์™€ ๋‹ค๋ฅด๊ฒŒ DFS๋Š” ๊นŠ์ด๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค. ์ฆ‰ ์ตœ๋Œ€ ๊นŠ์ด๊นŒ์ง€ ์žฌ๊ท€์ ์œผ๋กœ ์ด๋™ํ•œ ํ›„ ์ตœ๋Œ€ ๊นŠ์ด์— ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ ์˜†์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ๋˜ํ•œ BFS์—์„œ๋Š” Queue๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด DFS์—์„œ๋Š” Stack์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด Stack์— ์ €์žฅ๋œ ๊ฐ’์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” DFS์˜ ํƒ์ƒ‰ ์ˆœ์„œ์ด๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋™์ž‘ ๋ฐฉ์‹ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ํŠน์ • ์ •์ ์ด ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ •์ ์ธ ๊ฒฝ์šฐ ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

2. ํ•ด๋‹น ์ •์ ๊ณผ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์ •์ ์— ๋Œ€ํ•ด ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ DFS๋ฅผ ์ ์šฉํ•ด๋ณด์ž.

 

 

โ‘  ์‹œ์ž‘ ์ •์ ์„ 8์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ •์ ์ด๋ฏ€๋กœ, ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

Visit 8                

 

โ‘ก 8๊ณผ ์—ฐ๊ฒฐ๋œ 1๊ณผ 2๋ฅผ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , (์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ 1๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•œ๋‹ค.) ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

Visit 8 1              

 

โ‘ข 1๊ณผ ์—ฐ๊ฒฐ๋œ 3๊ณผ 5์˜ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

3๊ณผ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์ •์ ์ด ์—†์œผ๋ฏ€๋กœ 5๋กœ ๋„˜์–ด๊ฐ€๊ณ , ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

Visit 8 1 3 5          

 

โ‘ฃ 5์™€ ์—ฐ๊ฒฐ๋œ 7๊ณผ 9์˜ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

7๊ณผ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์ •์ ์ด ์—†์œผ๋ฏ€๋กœ 9๋กœ ๋„˜์–ด๊ฐ€๊ณ , ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

9์™€ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์ •์ ์ด ์—†์œผ๋ฏ€๋กœ 2๋กœ ๋„˜์–ด๊ฐ€๊ณ . ์ด๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

Visit 8 1 3 5 7 9 2    

 

โ‘ง ์œ„ ๊ณผ์ •์ด ์ข…๋ฃŒ๋˜๋ฉด Visit์— ์ €์žฅ๋œ ์ •์ ์˜ ์ˆœ์„œ๊ฐ€ DFS์ด๋‹ค.

Visit 8 1 3 5 7 9 2 6 4

DFS ํƒ์ƒ‰ ์ˆœ์„œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

ํ•„์ž๋Š” ๊ฐ„์„  ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋•Œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ–ˆ๋‹ค.

 

์œ„์˜ ๊ฐœ๋…์„ ํŒŒ์ด์ฌ์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.

 

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ทธ๋ž˜ํ”„๋กœ ์ž…๋ ฅ ๊ฐ’์„ ์ฃผ๋ฉด ์ด๋ก ์ƒ์œผ๋กœ ๊ตฌํ•œ ๋‹ต๊ณผ ๋™์ผํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

[Input]

9 8 8  # ์ •์ ์˜ ๊ฐœ์ˆ˜, ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜, ์‹œ์ž‘ ์ •์ 
8 1
8 2
1 5
1 3
5 7
5 9
2 6
6 4

 

[Output]

 

์ถฉ๋‚จ๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ์ด์˜์„ ๊ต์ˆ˜๋‹˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…๊ณผ ๋™๋นˆ๋‚˜์˜ ์œ ํŠœ๋ธŒ ๊ฐ•์ขŒ(youtu.be/l0Rsu7dziws)๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'โœ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ > Graph' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

6. Union Find(ํ•ฉ์ง‘ํ•ฉ ์ฐพ๊ธฐ) : MST - 1  (0) 2021.05.30
5. Floyd Warshall(ํ”Œ๋ฃจ์ด๋“œ ์™€์ƒฌ) : ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ - 3  (0) 2021.03.31
4. Bellman-Ford(๋ฒจ๋งŒ ํฌ๋“œ) : ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ - 2  (0) 2021.03.07
3. Dijsktra(๋‹ค์ต์ŠคํŠธ๋ผ) : ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ - 1  (0) 2021.03.02
1. BFS(Breath-Find-Search) : ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰  (0) 2021.01.21
  1. DFS(Depth-Find-Search)
  2. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰
'โœ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Graph' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 5. Floyd Warshall(ํ”Œ๋ฃจ์ด๋“œ ์™€์ƒฌ) : ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ - 3
  • 4. Bellman-Ford(๋ฒจ๋งŒ ํฌ๋“œ) : ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ - 2
  • 3. Dijsktra(๋‹ค์ต์ŠคํŠธ๋ผ) : ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ - 1
  • 1. BFS(Breath-Find-Search) : ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰
kodo_o
kodo_o
iOS ๊ฟ€์žผ!
kodo_o
๐ŸŽ๐Ÿ
kodo_o
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (149)
    • ๐Ÿ”จ ํ”„๋กœ์ ํŠธ (0)
      • TP 1 (0)
      • WhiteHCCTV (0)
      • FootPrint (0)
    • ๐Ÿ’ป ๊ฐœ๋ฐœ (63)
      • iOS (30)
      • Android (6)
      • Kotlin (4)
      • Flutter (9)
      • Node.js (5)
      • Architecture (1)
      • ์˜ค๋Š˜์˜ ์‚ฝ์งˆ (7)
      • ์—๋Ÿฌ์™€์˜ ๋™์นจ (1)
    • โœ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (6)
      • Graph (6)
      • String (0)
      • Sort (0)
    • โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„ (44)
      • Math (1)
      • Implementation (3)
      • String (3)
      • Brute Force (5)
      • Back Tracking (7)
      • Greedy (0)
      • Dynamic Programming (13)
      • Binary Search (1)
      • DFS, BFS (5)
      • Shortest Path (2)
      • Two Pointer (4)
      • MST (0)
    • ๐Ÿ“š CS (6)
      • Operating System (6)
    • โ›น๏ธ ๋ผ์ดํ”„ (30)
      • 2020 ๊ฒจ์šธ๋ฐฉํ•™ ๋ชจ๊ฐ์ฝ”(๊ฐœ์ธ) (12)
      • 2021 ์—ฌ๋ฆ„๋ฐฉํ•™ ๋ชจ๊ฐ์ฝ”(๊ฐœ์ธ) (6)
      • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (1)
      • ํšŒ๊ณ  (10)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ๊นƒํ—ˆ๋ธŒ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
kodo_o
2. DFS(Depth-Find-Search) : ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.