#1 ๋ค์ด๊ฐ๊ธฐ
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ์ ์ฒซ๋ฒ์งธ ์ฐ. ํ์.
์คํฐ๋๋ฉ์ดํธ๋ ์ด์ฌํ ๋จธ๋ฆฌ ๊ตด๋ฆฌ๋ฉฐ ํ์ ์์ ๋ฌธ์ ๋ฅผ ํ์์ง๋ง....๊ฒฐ๊ณผ๋ ์ฒ์ฐธํ๊ฒ ํจ๋ฐฐ.
๋ฌธ์ ๋ฅผ ๋ณด๊ณ DFS๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง, BFS๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ๊ฐ๋ ์์ฌ ๋ฟ๋๋ฌ
๋ฌธ์ ๋ง๋ค ํ์ ์๊ณ ๋ฆฌ์ฆ๋ ์กฐ๊ธ์ฉ ๋ฐ๊ฟ์ผํ๋๋ฐ,,,,
๋ถ๋ช
ํ๊ณผ ์ปค๋ฆฌ์ ์๋ ์๋ฃ๊ตฌ์กฐ์์
์ ๋ค์ผ๋ฉฐ ํ์๋ ๊ฐ์ด ๋ฐฐ์ ์๋๋ฐ, ๋ง์ ์ฐ๋ ค๊ณ ํ๋ ์ด๊ฒ ๋ญ์ง ์ถ์๋ค.
๊ทธ๋์ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํด๋ณด๋ ๊ธ.
ํ์์์ ํด๋งค๊ณ ๊ณ์๋ ๋ถ๋ค, ์ ์ ํจ๊ป ํค์ณ๋๊ฐ ๋ด
์๋ค.
#2 ์๋ฃ๊ตฌ์กฐ
ํ์์ ํ๊ธฐ ์ด์ ์, ๋ฌด์์ ํ์ํ ์ง๋ฅผ ์์์ผ ํ๋ค.
์ฐ๋ฆฌ๊ฐ ํ์ํ ๊ฒ์ ์ด๋ ํ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ(๋ฐ์ดํฐ) ๋ค ์ด๋ค. ๋ค์๋งํ๋ฉด, ์๋์ '์๋ฃ๊ตฌ์กฐ' ๋ผ๊ณ ํ๋๋ฐ...
์๋ฃ๊ตฌ์กฐ๋ ๊ธฐ๋ณธํ์์ ์์ํด ์ฌ๊ธฐ์ ํ์๋๋ ๋
์๋ค์ด ์๋์์ด ๋ง๋ค.
ํ๊ต ์์ ๋ค์ผ๋ฉฐ ๊ณผ์ ๋ฅผ ํ ๋, ์ฌ๋งํ ๋ฐ์ดํฐ๋ ๋ค ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ๋๋ ค๋ฐ์ ๊ธฐ์ต์ด(...)์๋ค.
#3 ํ์
ํ์(search)์ด๋ ๋ง์ ์์ ๋ฐ์ดํฐ ์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
์ฑ
์์ ๋ณผ๋๋ ์ฐธ ์ฌ์๋ณด์ด๋๋ฐ, ๋ง์ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ฉด ์ ์๋๋์ง ์ ๋ง ๋ชจ๋ฅด๊ฒ ๋ ๋
์.
๋ํ์ ์ธ ํ์ ์๊ณ ๋ฆฌ์ฆ์ BFS(๋๋น ์ฐ์ ํ์), DFS(๊น์ด ์ฐ์ ํ์) ์ด ์๋ค.
๋ ๋ค ๊ฐ์ ์ ํตํด ๋
ธ๋๋ฅผ ์๋ฆฌ์กฐ๋ฆฌ ๋๋๋ค๋ฉฐ ๋ฐ์ดํฐ์ฒ์ ํค์ณ๋๊ฐ์ง๋ง, ๊ทธ ๋ฐฉ์์ด ๋ค๋ฅด๋ค.
๊ฐ๋
์ด ์ ๋ฆฌ๋๊ธฐ ์ ์ ์ด๊ฒ ๋ญ์ง ์ถ์ง๋ง, ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ฆฌํด ๋ณด์.
1. DFS
์ฃผ๋ก ์ฌ๊ท์ ์ฑ์ง์ ์ด์ฉํด ๊ตฌํํ๋ค.
์ฌ๊ท๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ์ ํํ๋ก ํธ์ถ๋๊ธฐ ๋๋ฌธ์, DFS๋ ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ค ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ ์ธ์ธํ์ ์๋ค.
๊ฒ์ ์ข ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ์คํ์ ์์ธ๋ค๋๊ฒ์ ๋ชจ๋ฅผ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์, ์ดํดํ๋๋ฐ์ ํฐ ์ด๋ ค์์ ์์๊ฒ.
DFS๊ฐ ๋์ํ๋ ์์๋ ์ด๋ ๋ค.
- ํ์ ์์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ ํ ํ, ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
- ์คํ์ ๋งจ ์ ๋
ธ๋์ ์ฐ๊ฒฐ๋ ๋
ธ๋(๊ฐ์ ์ผ๋ก ์ง์ ์ฐ๊ฒฐ๋, ์ธ์ ๋
ธ๋) ์ค์, ๋ฐฉ๋ฌธํด๋ณธ์ ์ด ์๋ ๋
ธ๋๋ค์ ์คํ ๋งจ ์์ ๋ฃ๋๋ค.
์ ๋ถ ๋ฐฉ๋ฌธํด๋ณธ ๋ ธ๋๋ผ๋ฉด, ๋งจ ์์ ๋ ธ๋๋ฅผ ์คํ์์ ๊บผ๋ธ๋ค. - 2๋ฒ์ ๊ณผ์ ์ ๋์ด์ ์ํํ ์ ์์๋๊น์ง ๋ฐ๋ณต.
์ฆ, ์คํ์ ํ ์์ด์ฉ ๊ณ์ ์๊ณ , ์๋ค๊ฐ ๋ ์์ ์์ด๊ฐ ์์ผ๋ฉด ์คํ์์ ๋นผ๊ณ , ๋ ์์ ์์ด๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ์ฐ์์ด๋ค.
DFS์ ํฌ์ธํธ๋, ๋ฐฉ๋ฌธ ํ์๋ฅผ ๊ผญ ํด์ผํ๋ค๋ ๊ฒ์ด๋ค.
๋ฐฉ๋ฌธํ์๋ฅผ ํ์ง ์์ผ๋ฉด ๋ฌดํ์ ์ธํผ๋ํฐ์ ๋น ์ง๊ธฐ ๋๋ฌธ์,,,
๊ทธ๋์ ๋ฌธ์ ๋ฅผ ํ๋ ์ฃผ์ด์ง ์
๋ ฅ์ ๋ณํํด ๋ฐฉ๋ฌธํ์๋ฅผ ํ๊ฑฐ๋ ๋ฐฉ๋ฌธํ์๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฅผ ํ๋ ๋ง๋ จํ๊ฑฐ๋ ํ๋ค.
2. BFS
์ด๋์ ๋๋น ์ฐ์ ํ์์ด๋ผ๋ ์ด๋ฆ๋ต๊ฒ, ์ผ๋จ ์ฃผ์๋ฅผ ํ์ํ ํ์ ์์ผ๋ก ๋์๊ฐ๋ค.
์ฃผ๋ก 'ํ(queue)' ๊ตฌ์กฐ์ ํจ๊ป ๋ฐ๋ณต๋ฌธ๊ณผ ํ์ฅ์ ์ฝค๋น๋ฅผ ์ด๋ฃฌ๋ค.
์คํ์ ๋์ค์ ๋ค์ด์จ ๋์ด ๋จผ์ ๋๊ฐ๋ ์๋ฏธ์ด ๋
์์ด์๋ค๋ฉด, ํ๋ ๋จผ์ ๋ค์ด์จ ๋์ด ๋จผ์ ๋๊ฐ๋ ๋ง์์ด ํธ์ํ ๋
์์ด๋ค.๊ทธ๋ ๋ค๊ณ ๋จธ๋ฆฌ๊ฐ ํธ์ํ์ง ์์ง
BFS๊ฐ ๋์ํ๋ ์๋ฆฌ๋ ์ด๋ ๋ค.
- ํ์ ์์ ๋ ธ๋๋ฅผ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
- ํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ด ํด๋น ๋ ธ๋์ ์ธ์ ๋ ธ๋์ค ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ฅผ ๋ชจ๋ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
- 2๋ฒ์ ๊ณผ์ ์ ๋์ด์ ์ํํ ์ ์์ ๋๊น์ง ๋ฐ๋ณต.
์ฆ, ๋ฐฉ๋ฌธํ ๋
์๋ค์ ์ธ์ ๋
ธ๋๊ฐ ํ์ ๊ณ์ ์์ด๊ณ , ๋จผ์ ๋ค์ด์๋ ๋
์๋ค์ out๋๊ณ .
์์ธ ๋
์๋ค์ ์ธ์ ๋
ธ๋๊ฐ ํ์ ๋ ์์ด๊ณ ๊ทธ๋ฐ ์์ด๋ค.
๋ฐ...๋ง๋ง ๋ค์ผ๋ฉด ์ด๊ฒ ๋ญ์ง ์ถ๋ค.
๊ธ๋ก ๋ณด๊ธฐ๋ง ํ๋ฉด ์ด๋ ค์ด๋ฐ, ๊ทธ๋ฆผ์ผ๋ก๋ณด๋ฉด ์ด์ํ๊ฒ ์ฐธ ์ฝ๋ค. ๋์์์ผ๋ก ๋ณด๋ฉด ๋ ์ฝ๋ค. ํ๋ฒ ๊ฐ์ด ๋ณด์.
#4 ํ์ฉ
๊ทธ๋ผ BFS๋ ์ธ์ ์ฐ๊ณ DFS๋ ์ธ์ ์จ?
์ด๊ฑด ๋ฌธ์ ๋ฅผ ๋ง์ด ํ์ด๋ด์ผ ๊ฐ์ด ์กํ๋ค๋๋ฐ,,,,๋ ์์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.
์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๋ ๋ฌธ์ ๋ค์ BFS๋ฅผ ์ฃผ๋ก ์ฌ์ฉ, ์ด๋๊ฐ์ ๊ฐ์ค์น๊ฐ ์๊ฑฐ๋ ์ ์ฝ์ด ์๋ค๋ฉด DFS๋ฅผ ์ฃผ๋ก ์ฌ์ฉ,,,
๋ญ ๋ ํ์ด๋ด์ผ ์๊ฒ ์ง. ์ผ๋จ ๋ฌธ์ ๋ถํฐ ํ์ด๋ณด์.
#์ฐธ๊ณ
[์๊ณ ๋ฆฌ์ฆ] ๊น์ด ์ฐ์ ํ์(DFS) ๊ณผ ๋๋น ์ฐ์ ํ์(BFS)
[์๊ณ ๋ฆฌ์ฆ] ๊น์ด ์ฐ์ ํ์(DFS)๊ณผ ๋๋น ์ฐ์ ํ์(BFS) ๊ทธ๋ํ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ ๊น์ด ์ฐ์ ํ์(DFS)๊ณผ ๋๋น ์ฐ์ ํ์(BFS)์ด ์์ต๋๋ค. ๐์ฌ๊ธฐ์ ๊ทธ๋ํ๋, ์ ์ (node)๊ณผ ๊ทธ ์ ์ ์ ์ฐ
devuna.tistory.com
https://developer-mac.tistory.com/64
[์ฝ๋ฉํ ์คํธ ๋๋น] DFS, BFS ์ ๋ฆฌ
DFS, BFS ์ ๋ฆฌ DFS, BFS๋ ๊ทธ๋ํ์ ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฝ๋ฉํ ์คํธ์์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์์ ๋ง์ด ์ถ์ ๊ฐ ๋๋ค. DFS Root Node ํน์ ๋ค๋ฅธ ์์์ Node์์ ๋ค์ ๋ถ๊ธฐ(Branch)๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ํด๋น ๋ถ๊ธฐ
developer-mac.tistory.com
https://covenant.tistory.com/132
DFS BFS๋? ๋ฐฑ์ค ๋ฌธ์ ์ถ์ฒ
DFS BFS๋? ๋ฐฑ์ค ๋ฌธ์ ์ถ์ฒ ๊ทธ๋ํ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก DFS์ BFS๊ฐ ์์ต๋๋ค. ์ด๋ ค์ด ์ฝ๋ฉํ ์คํธ๋ฅผ ํต๊ณผํ๊ณ ๋๋ฉด ๋ง๋๊ฒ ๋ ๊ธฐ์ ๊ธฐ์ ๋ฉด์ ์ ๋จ๊ณจ ์ฃผ์ ์ ๋๋ค. ๋ณธ ์๊ณ ๋ฆฌ์ฆ์
covenant.tistory.com
'learnings > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2458 ํค ์์ (0) | 2021.08.03 |
---|---|
[PS/ํ์/BFS/DFS] ์ฌ๊ธฐ์ ๊ธฐ ์ด๊ณณ์ ๊ณณ ํ์ํ์ 2 (0) | 2021.07.19 |
[PS/๊ทธ๋ฆฌ๋/ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (0) | 2021.07.02 |
[PS/๊ทธ๋ฆฌ๋/์ฝ๋์ ] 3120 : ๋ฆฌ๋ชจ์ปจ (0) | 2021.06.30 |
[PS/์ฝ๋์ ] 1097 : ๋ฐ๋์ ์ญ์ ๋ค์ง๊ธฐ (0) | 2021.06.29 |