# 14 ๊น์ด์ฐ์ ํ์(DFS)
์์ ๋ ธ๋์์ ์ถ๋ฐํ์ฌ ํ์ํ ํ์ชฝ ๋ถ๊ธฐ๋ฅผ ์ ํ์ฌ ์ต๋ ๊น์ด๊น์ง ํ์์ ๋ง์น ํ, ๋ค๋ฅธ ๋ถ๊ธฐ๋ก ์ด๋ํ์ฌ ๋ค์ ํ์์ ์ํํ๋ ์๊ณ ๋ฆฌ์ฆ
๊ธฐ๋ฅ | ํน์ง | ์๊ฐ๋ณต์ก๋ |
๊ทธ๋ํ ์์ ํ์ | LIFO ์ฌ๊ทํจ์ ๋๋ Stack์ผ๋ก ๊ตฌํ |
O(V+E) |
// ์ฌ๊ทํจ์ ๊ตฌํ์ ์คํ ์ค๋ฒ ํ๋ก์ฐ ์ ์
A{
A();
}
์์ฉ ๋จ์ ์ ์ฐพ๊ธฐ, ๋จ์ ์ ์ฐพ๊ธฐ, ์ฌ์ดํด ์ฐพ๊ธฐ, ์์์ ๋ ฌ
1. DFS๋ฅผ ์์ํ ๋ ธ๋๋ฅผ ์ ํ ํ ์ฌ์ฉํ ์๋ฃ๊ตฌ์กฐ ์ด๊ธฐํ
์๋ณธ ๊ทธ๋ํ, ์ธ์ ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ ํํ, ๋ฐฉ๋ฌธ๋ฐฐ์ด 1์ T, ์คํ์ 1
2. ์คํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ธ ํ ๊บผ๋ธ ๋ ธ๋์ ์ธ์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์
3. ์คํ์ ๊ฐ์ด ์์ ๋๊น์ง ๋ฐ๋ณต
์ด๋ฏธ ๋ค๋ ๊ฐ ๋ ธ๋๋ ์ฌ๋ฐฉ๋ฌธX
pop() ํ๋ฉด์ ํ์ ์์์ ๊ธฐ๋ก,
์ธ์ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ๋ฐฐ์ด์์ ์ฒดํฌํ push()
# 15 ๋๋น์ฐ์ ํ์ BFS
์์ ๋ ธ๋์์ ์ถ๋ฐํด ์์๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ๊น์ด ๋ ธ๋๋ฅผ ๋จผ์ ๋ฐฉ๋ฌธํ๋ฉด์ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ
๊ธฐ๋ฅ | ํน์ง | ์๊ฐ๋ณต์ก๋ |
๊ทธ๋ํ ์์ ํ์ | FIFO Queue |
O(V+E) |
์์ฉ ์ต๋จ๊ฒฝ๋ก
1. BFS๋ฅผ ์์ํ ๋ ธ๋๋ฅผ ์ ํํ ์ฌ์ฉํ ์๋ฃ๊ตฌ์กฐ ์ด๊ธฐํ
์๋ณธ ๊ทธ๋ํ, ์ธ์ ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ ํํ, ๋ฐฉ๋ฌธ๋ฐฐ์ด 1์ T, ํ์ 1
2. ํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ธ ํ, ๊บผ๋ธ ๋ ธ๋์ ์ธ์ ๋ ธ๋๋ฅผ ํ์ ์ฝ์
3. ํ์ ๊ฐ์ด ์์ ๋๊น์ง ๋ฐ๋ณต
์ด๋ฏธ ๋ค๋ ๊ฐ ๋ ธ๋๋ ์ฌ๋ฐฉ๋ฌธX
poll()ํ๋ฉด์ ํ์ ์์์ ๊ธฐ๋ก,
์ธ์ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ๋ฐฐ์ด์์ ์ฒดํฌํ add()
# 16 ์ด์ง ํ์ (Binary Search)
๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋ ์ํ์์, ์ํ๋ ๊ฐ์ ์ฐพ์๋ด๋ ์๊ณ ๋ฆฌ์ฆ
๋์ ๋ฐ์ดํฐ์ ์ค์๊ฐ๊ณผ ์ฐพ๊ณ ์ ํ๋ ๊ฐ์ ๋น๊ตํด์ ๋ฐ์ดํฐ์ ๋ฒ์๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ด๋ฉด์ ์ฐพ๋๋ค.
๊ธฐ๋ฅ | ํน์ง | ์๊ฐ๋ณต์ก๋ |
ํ๊ฒ ๋ฐ์ดํฐ ํ์ | ์ค์๊ฐ ๋น๊ต๋ฅผ ํตํ ์ถ์ ๋ฐฉ์ | O(logN) |
์กฐ๊ฑด
์ ๋ ฌ๋์ด ์๋ ์ํ
๊ณผ์
1. ํ์ฌ ๋ฐ์ดํฐ์ ์ ์ค์๊ฐ median์ ์ ํ
2. ๋น๊ต ํ์ฌ ์ฐพ๊ณ ์ํ๋ ๋ฐ์ดํฐ < ์ค์๊ฐ์ด๋ฉด ์ค๋ฅธ์ชฝ ๋ฒ๋ฆฌ๊ณ ์ผ์ชฝ ์ ํ
3. ๋น๊ต ํ์ฌ ์ฐพ๊ณ ์ํ๋ ๋ฐ์ดํฐ > ์ค์๊ฐ์ด๋ฉด ์ผ์ชฝ ๋ฒ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ ์ ํ
3. 2, 3๊ณผ์ ๋ฐ๋ณตํ์ฌ ์ฐพ๊ณ ์ํ๋ ๋ฐ์ดํฐ == ์ค์๊ฐ ์ด๋ฉด ์ข ๋ฃ