DFS (Depth-First-Search)
๊น์ด ์ฐ์ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๊ทธ๋ํ์์ ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค.
์คํ ์๋ฃ ๊ตฌ์กฐ(ํน์ ์ฌ๊ท ํจ์)๋ฅผ ์ด์ฉํ๋ค.
1. ํ์ ์์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
2. ์คํ์ ์ต์๋จ ๋ ธ๋์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ํ ๋ ธ๋๊ฐ ํ๋๋ผ๋ ์๋ค๋ฉด ๊ทธ ๋ ธ๋๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์๋ค๋ฉด ์ต์๋จ ๋ ธ๋๋ฅผ ๊บผ๋ธ๋ค.
3. ๋ ์ด์ 2๋ฒ์ ๊ณผ์ ์ ์ํํ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
DFS ๋์ ์์
[Step 0] ๊ทธ๋ํ ์ค๋น (๋ฐฉ๋ฌธ ๊ธฐ์ค : ๋ฒํธ๊ฐ ๋ฎ์ ์ธ์ ๋ ธ๋๋ถํฐ)
- ์์ ๋ ธ๋ : 1

[Step 1] ์์ ๋ ธ๋์ธ '1'์ ์คํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 2] ์คํ์ ์ต์๋จ ๋ ธ๋์ธ '1'์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '2','3','8'์ด ์๋ค.
- ์ด ์ค์์ ๊ฐ์ฅ ์์ ๋ ธ๋์ธ '2'๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 3] ์คํ์ ์ต์๋จ ๋ ธ๋์ธ '2'์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '7'์ด ์๋ค.
- ๋ฐ๋ผ์ '7'๋ฒ ๋ ธ๋๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 4] ์คํ์ ์ต์๋จ ๋ ธ๋์ธ '7'์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '6','8'์ด ์๋ค.
- ์ด ์ค์์ ๊ฐ์ฅ ์์ ๋ ธ๋์ธ '6'์ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 5] ์คํ์ ์ต์๋จ ๋ ธ๋์ธ '6'์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์๋ค.
- ๋ฐ๋ผ์ ์คํ์์ '6'๋ฒ ๋ ธ๋๋ฅผ ๊บผ๋ธ๋ค.

[Step 6] ์คํ์ ์ต์๋จ ๋ ธ๋์ธ '7'์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '8'์ด ์๋ค.
- ๋ฐ๋ผ์ '8'๋ฒ ๋ ธ๋๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[๊ฒฐ๊ณผ]
์ด๋ฌํ ๊ณผ์ ์ ๋ฐ๋ณตํ์ ๋, ์ ์ฒด ๋ ธ๋์ ํ์ ์์(์คํ์ ๋ค์ด๊ฐ ์์)๋ ๋ค์๊ณผ ๊ฐ๋ค.
1 -> 2 -> 7 -> 6 -> 8 -> 3 -> 4 -> 5
BFS (Breadth-First-Search)
๋๋น ์ฐ์ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๊ทธ๋ํ์์ ๊ฐ๊น์ด ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค.
ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ค.
1. ํ์ ์์ ๋ ธ๋๋ฅผ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค.
2. ํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ธ ๋ค์ ํด๋น ๋ ธ๋์ ์ธ์ ๋ ธ๋ ์ค์์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ฅผ ๋ชจ๋ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค.
3. ๋ ์ด์ 2๋ฒ์ ๊ณผ์ ์ ์ํํ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
BFS ๋์ ์์
[Step 0] ๊ทธ๋ํ ์ค๋น (๋ฐฉ๋ฌธ ๊ธฐ์ค: ๋ฒํธ๊ฐ ๋ฎ์ ์ธ์ ๋ ธ๋๋ถํฐ)
- ์์ ๋ ธ๋ : 1

[Step 1] ์์ ๋ ธ๋์ธ '1'์ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 2] ํ์์ ๋ ธ๋ '1'์ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '2','3','8'์ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 3] ํ์์ ๋ ธ๋ '2'๋ฅผ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '7'์ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 4] ํ์์ ๋ ธ๋ '3'์ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋ '4','5'๋ฅผ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค.

[Step 5] ํ์์ ๋ ธ๋ '8'์ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์์ผ๋ฏ๋ก ๋ฌด์ํ๋ค.

[๊ฒฐ๊ณผ]
์ด๋ฌํ ๊ณผ์ ์ ๋ฐ๋ณตํ์ ๋, ์ ์ฒด ๋ ธ๋์ ํ์ ์์(ํ์ ๋ค์ด๊ฐ ์์)๋ ๋ค์๊ณผ ๊ฐ๋ค.
1 -> 2 -> 3 -> 8 -> 7 -> 4 -> 5 -> 6'Algorithm๐ป > study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Algorithm] ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2022.11.11 |
|---|