This repo contains useful algorithm problems & templates for coding tests ๐.
๐ All about graphs - Use these templates! :)
-
ํ์ฌ ์ํฉ์์ ๊ฐ์ฅ ์ข์๋ณด์ด๋ ๊ฒ์ ์ ํ
๋ฌธ์ ์์
'๊ฐ์ฅ ํฐ, ์์ ์์๋๋ก'
๋ผ๋ ๊ธฐ์ค์ ์ ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ -
๊ทธ๋ฆฌ๋ ํด๋ฒ์ด ์ ๋นํ์ง ๊ฒํ ํด์ผํจ
ex) ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ๋ ๋์ ์ ํฐ ๋จ์๊ฐ ํญ์ ์์ ๋จ์์ ๋ฐฐ์์ด๋ฏ๋ก, ์์ ๋จ์์ ๋์ ์ ์ข ํฉํด ๋ค๋ฅธ ํด๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฆฌ๋๊ฐ ์ฑ๋ฆฝ
-
My solution
- ๋ชซ๊ณผ ๋๋จธ์ง๋ฅผ ์ ์ด์ฉํ์ - ๋ชซ๊ณผ ๋๋จธ์ง๋ก ๋ฐ๋ณต๋๋ ํจํด์ ์ฐพ์๋ณด์ !
-
๋จ๋ฐฉํฅ ๊ทธ๋ํ ๋ํ๋ด๊ธฐ : 2์ฐจ์๋ฆฌ์คํธ๋ก node๋ณ ์ฐ๊ฒฐ๋ edge ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค
-
BFS
: ํ(์ ์ ์ ์ถ)๋ฅผ ์ด์ฉํ๊ธฐ๋ชจ๋ edge์ weight๊ฐ ๊ฐ์ ๋ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๊ธฐ
-
DFS
: ์คํ(ํ์ ์ ์ถ)์ ์ด์ฉํ๊ธฐ + ์ฌ๊ทํจ์ ์ด์ฉ ! -
My solution
- ์ํ์ข์ฐ ์ด๋ ์ ํ์ด ์์ฃผ ์ถ์ ๋จ
-
ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋๋ ์ ์๊ณ , ์์ ๋ฌธ์ ์ ํด๋ต์ ์ฌํํ ์ ์์ ๋
-
ํํฅ์(Top-Down) : ํฐ ๋ฌธ์ ์์ ์์ ๋ฌธ์ โก๏ธ
์ฌ๊ทํจ์
์ด์ฉ (๋ฉ๋ชจ์ด์ ์ด์ , memoization) -
์ํฅ์(Bottom-Up) : ์์ ๋ฌธ์ ์์ ํฐ๋ฌธ์ โก๏ธ
๋ฐ๋ณต๋ฌธ
์ด์ฉ (๊ฒฐ๊ณผ ์ ์ฅ์ฉ DP ํ ์ด๋ธ ์ด์ฉ)DP ๋ฌธ์ ์ธ์ง ์๋๊ฒ ์ค์ํจ ! ์ค๋ณต์ฌ๋ถ๋ฅผ ํ์ธํ์ !
๋ค์ต์คํธ๋ผ
: edge๊ฐ ๋ชจ๋ ์์์ผ ๋-
O(V^2) : ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ์ ํ์ ์ผ๋ก ํ์
-
O(ElogV) : ์ฐ์ ์์ ํ(์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ญ์ . ์ฃผ๋ก ์ต์ํ์ผ๋ก ๊ตฌํํด ๊ฐ์ฅ ์์ ์์๋ถํฐ ์ถ์ถ)
๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ์์๋๋ก ํ์์ ๋์ฌ ์ ์๋๋ก ํ๊ธฐ์ํด
์ต์ํ
์ฌ์ฉ
-