๊น์ด ์ฐ์ ํ์(DFS, Depth First Search), ๋๋น ์ฐ์ ํ์(BFS, Breadth First Search))
BFS, DFS๋ ๊ทธ๋ํ์ ํ์ ๊ธฐ๋ฒ์ผ๋ก
๋ชฉ์ ์ ์์์ ํ ์ ์ ์์ ์์ํ์ฌ ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ๋ ๋ฐ ์๋ค.
๊น์ด ์ฐ์ ํ์ - DFS(Depth-first search)
์์ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์
์ฆ, ์์ง ๋ฐฉ๋ฌธ๋์ง ์์ ์ธ์ ๋ ธ๋(์์ ๋ ธ๋)๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์
๊น์ด ์ฐ์ ํ์์ ํ์ชฝ๋ง ์ฃฝ์ด๋ผ ํ๋ค๊ฐ ๋์ด์ ํ ๊ณณ์ด ์์ผ๋ฉด ๋ค์ ๋์์์ ๋ค๋ฅธ ํ์ชฝ์ ์ฃฝ์ด๋ผ ํ๋ ํ์์ด๋ค.
๊น์ด ์ฐ์ ํ์์ Stack์ ํตํด ๊ตฌํ๋๋ค.
๋๋น ์ฐ์ ํ์ - BFS(Breadth-first search)=๋ ๋ฒจ ์ํ(level-order traversal)
์ฝ๋๋งํฌ : BFS ์ฝ๋ (tistory.com)
๊ฐ์ ์ ๋ชจ๋ ๊ฐ์ค์น๊ฐ ๊ฐ์ ๋, ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก
์์ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊น์ด ์ ์ ์ ๋จผ์ ๋ฐฉ๋ฌธํ๋ค.
๋ฐฉ๋ฌธ ์์๋ ์ต๋จ ๊ฑฐ๋ฆฌ์ ์ํฅ์ ๋ผ์น๋ค.
ํ์ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์
์ฆ, ์์ง ๋ฐฉ๋ฌธ๋์ง ์์ ์ด์ ๋ ธ๋(๋ถ๋ชจ ๋ ธ๋)์ ์ธ์ ๋ ธ๋(ํ์ฌ ๋ ธ๋์ ํ์ ๋ ธ๋)๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์
๋ณดํต ๋๋น ์ฐ์ ํ์์ Queue๋ฅผ ํตํด ๊ตฌํํ์ฌ ์ ์ ์ ์ถ์ ์์น์ผ๋ก ํ์ํ๋ค.
๊ฐ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๋ visit[y][x]=1๋ก ๋ณ๊ฒฝํด์ค๋ค๋ฉด,
visit[y][x]=1์ธ ๋ ธ๋๋ฅผ ๋ง๋ ๋ continue; ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ค๋ณต ๋ฐฉ๋ฌธ์ ํํผํ๋ค.