โ๏ธ ์๊ณ ๋ฆฌ์ฆ/Graph
Union Find (ํฉ์งํฉ ์ฐพ๊ธฐ) MST - 1 ์ ๋ง ์ค๋๋ง์ ํฌ์คํ
์ด๋ค. MST ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ๋์ค ์๊ฐ๋์ ํฌ์คํ
ํ๊ฒ ๋๋ค. ๋งค์ฃผ ์ฃผ๋ง๋ง๋ค ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
์ ๋ฆฌ๋ฅผ ํ๋ ค๊ณ ํ๋๋ฐ ๊ณ์ ์คํจํ๋ ๊ฒ ๊ฐ๋ค... ใ
ใ
;; ์ค๋ ๋ค๋ค๋ณผ ์ฃผ์ ๋ MST, ์ต์ ์ ์ฅ ํธ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ณธ ๋ฒ ์ด์ค์ธ Union Find์ด๋ค. ์ต์ ์ ์ฅ ํธ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์๋ ๋ํ์ ์ผ๋ก ํฌ๋ฃจ์ค์นผ(Kruskal)๊ณผ ํ๋ฆผ(Prim) ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๋ค. Union FInd๋ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ด๋ผ๊ณ ๋งํ ์ ์๋ค. ๊ทธ๋ผ Union Find๊ฐ ๋ฌด์์ธ์ง ์์๋ณด์. Union Find๋ ๋ง ๊ทธ๋๋ก Union, ์งํฉ์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ทธ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋ ์ด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์์๋ณผ ์ ์๋ค. ๋ฐ๋ก ์์..
โ๏ธ ์ฝํ
์ค๋น/DFS, BFS
๋ณธ ๊ฒ์๊ธ์ PC๋ฒ์ ์ ์ต์ ํ ๋์ด์์ต๋๋ค. www.acmicpc.net/problem/1260 1260๋ฒ: DFS์ BFS ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 1,000), ๊ฐ์ ์ ๊ฐ์ M(1 ≤ M ≤ 10,000), ํ์์ ์์ํ ์ ์ ์ ๋ฒํธ V๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฐ์ ์ด ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ค ๋ ์ ์ ์ฌ www.acmicpc.net ์
๋ ฅ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 1,000), ๊ฐ์ ์ ๊ฐ์ M(1 ≤ M ≤ 10,000), ํ์์ ์์ํ ์ ์ ์ ๋ฒํธ V๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฐ์ ์ด ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ค ๋ ์ ์ ์ฌ์ด์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ด ์์ ์ ์๋ค. ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๊ฐ์ ์ ์๋ฐฉํฅ์ด๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ DFS๋ฅผ..
โ๏ธ ์ฝํ
์ค๋น/Shortest Path
๋ณธ ๊ฒ์๊ธ์ PC๋ฒ์ ์ ์ต์ ํ ๋์ด์์ต๋๋ค. 10217๋ฒ: KCM Travel ๊ฐ๊ณ ์ ๋
ธ๋ ฅ ๋์ ์ฐฌ๋ฏผ์ด๋ 2014 Google Code Jam World Finals์ ์ง์ถํ๊ฒ ๋์๋ค. ๊ตฌ๊ธ์์ ์จ ์ด๋์ฅ์ ๋ฐ๊ณ ๊ธฐ๋ปํ๋ ๊ฒ๋ ์ ์, ์ฐฌ์ฐฌํ ์ฝ์ด๋ณด๋ ์ฐฌ๋ฏผ์ด๋ ์ค์ํ ์ฌ์ค์ ์์์ฐจ๋ ธ๋ค. ์ต๊ทผ์ ๋์ธ www.acmicpc.net ์
๋ ฅ ์
๋ ฅ ํ์ผ์ ์ฒซ ๋ฒ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ์๋ฅผ ์๋ฏธํ๋ ์์ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์์๋ T๊ฐ์ ํ
์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ์ฒซ ์ค์๋ ๊ณตํญ์ ์ N (2 ≤ N ≤ 100), ์ด ์ง์๋น์ฉ M (0 ≤ M ≤ 10,000), ํฐ์ผ์ ๋ณด์ ์ K (0 ≤ K ≤ 10,000)๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ด์ด์ K๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ํฐ์ผ์ ์ถ๋ฐ๊ณตํญ u, ๋์ฐฉ..
โ๏ธ ์ฝํ
์ค๋น/Shortest Path
๋ณธ ๊ฒ์๊ธ์ PC๋ฒ์ ์ ์ต์ ํ ๋์ด์์ต๋๋ค. 1956๋ฒ: ์ด๋ ์ฒซ์งธ ์ค์ V์ E๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) ๋ค์ E๊ฐ์ ์ค์๋ ๊ฐ๊ฐ ์ธ ๊ฐ์ ์ ์ a, b, c๊ฐ ์ฃผ์ด์ง๋ค. a๋ฒ ๋ง์์์ b๋ฒ ๋ง์๋ก ๊ฐ๋ ๊ฑฐ๋ฆฌ๊ฐ c์ธ ๋๋ก๊ฐ ์๋ค๋ ์ www.acmicpc.net ์
๋ ฅ ์ฒซ์งธ ์ค์ V์ E๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) ๋ค์ E๊ฐ์ ์ค์๋ ๊ฐ๊ฐ ์ธ ๊ฐ์ ์ ์ a, b, c๊ฐ ์ฃผ์ด์ง๋ค. a๋ฒ ๋ง์์์ b๋ฒ ๋ง์๋ก ๊ฐ๋ ๊ฑฐ๋ฆฌ๊ฐ c์ธ ๋๋ก๊ฐ ์๋ค๋ ์๋ฏธ์ด๋ค. (a → b์์ ์ฃผ์) ๊ฑฐ๋ฆฌ๋ 10,000 ์ดํ์ ์์ฐ์์ด๋ค. (a, b) ์์ด ๊ฐ์ ๋๋ก๊ฐ ์ฌ๋ฌ ๋ฒ ์ฃผ์ด์ง์ง ์๋๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ์ต์..
โ๏ธ ์ฝํ
์ค๋น/DFS, BFS
www.acmicpc.net/problem/1707 1707๋ฒ: ์ด๋ถ ๊ทธ๋ํ ์
๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ
์คํธ ์ผ์ด์ค๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ, ์ฒซ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ๊ฐ์ K(2≤K≤5)๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ๊ทธ๋ํ์ ์ ์ ์ ๊ฐ์ V(1≤V≤20,000)์ ๊ฐ์ ์ ๊ฐ์ www.acmicpc.net ์
๋ ฅ ์
๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ
์คํธ ์ผ์ด์ค๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ, ์ฒซ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ๊ฐ์ K(2≤K≤5)๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ๊ทธ๋ํ์ ์ ์ ์ ๊ฐ์ V(1≤V≤20,000)์ ๊ฐ์ ์ ๊ฐ์ E(1≤E≤200,000)๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. ๊ฐ ์ ์ ์๋ 1๋ถํฐ V๊น์ง ์ฐจ๋ก๋ก ๋ฒํธ๊ฐ ๋ถ์ด ์๋ค. ์ด์ด์ ๋์งธ ์ค๋ถํฐ E๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ์ ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋๋ฐ..
โ๏ธ ์ฝํ
์ค๋น/DFS, BFS
www.acmicpc.net/problem/7562 7562๋ฒ: ๋์ดํธ์ ์ด๋ ์ฒด์คํ ์์ ํ ๋์ดํธ๊ฐ ๋์ฌ์ ธ ์๋ค. ๋์ดํธ๊ฐ ํ ๋ฒ์ ์ด๋ํ ์ ์๋ ์นธ์ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ค. ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ๋์ดํธ๋ ๋ช ๋ฒ ์์ง์ด๋ฉด ์ด ์นธ์ผ๋ก ์ด๋ํ ์ www.acmicpc.net ์
๋ ฅ ์
๋ ฅ์ ์ฒซ์งธ ์ค์๋ ํ
์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ ์ธ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฒซ์งธ ์ค์๋ ์ฒด์คํ์ ํ ๋ณ์ ๊ธธ์ด l(4 ≤ l ≤ 300)์ด ์ฃผ์ด์ง๋ค. ์ฒด์คํ์ ํฌ๊ธฐ๋ l × l์ด๋ค. ์ฒด์คํ์ ๊ฐ ์นธ์ ๋ ์์ ์ {0, ..., l-1} × {0, ..., l-1}๋ก ๋ํ๋ผ ์ ์๋ค. ๋์งธ ์ค๊ณผ ์
์งธ ์ค์๋ ๋์ดํธ๊ฐ ํ์ฌ ์๋ ์นธ, ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ๊ฐ ํ
..
โน๏ธ ๋ผ์ดํ/์ฝ๋ฉ ํ
์คํธ
๋์๋ฆฌ ํก๋ฐฉ์ ๊ด๋ จ ๊ณต์ง๊ฐ ์ฌ๋ผ์์ ๋ฐฑ์ค๋ ์ด๋์ ๋ ํ์ด๋ดค๊ฒ ๋ค ์ถ์ด์ ์ค๋ ฅ์ ํ
์คํธํ ๊ฒธ, ์นด์นด์ค ์ฝํ
์ค๋นํ๋ ๊ฒธ ํด์ ์ค์ฝํ์ ์ฐธ๊ฐํ๊ฒ ๋๋ค! ์ค์ฝํ 2021, SCOFE 2021 ์คํํธ์
๊ธฐ์
๋ค์ด ์ฃผ์ตํ๋ ์ฝ๋ฉํ
์คํธ์๋ค! ์์ฑ , ์์นด, ์ค๋์ ์ง, ๋ง์ผ์ปฌ๋ฆฌ, ๋ธ๋๋, ๋ฒ๊ฐ์ฅํฐ ๋ค๋ค ํ๋ฒ์ฉ์ ๋ค์ด๋ณธ ์ด๋ฆ์ด๋ผ๊ณ ์๊ฐํ๋ค! ๋ฌธ์ ๋ง๋ค ํน์ ๊ธฐ์
์ด ๋ค์ด๊ฐ์์๋๊ฑฐ๋ณด๋ฉด ๊ธฐ์
๋ณ๋ก 1๋ฌธ์ ์ฉ ์ถ์ ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ธ์ด๋ ๋ด๊ฐ ์ ์ผ ์ข์ํ๋ ํ์ด์ฌ์ผ๋ก ์งํํ๋ค. ์ด ๋ฌธ์ 6๋ฌธ์ . ๋ฐฐ์ ์ 20 / 20 / 20 / 20 / 30 / 30 ์ผ๋ก ์ด์ 140์ ์ด์๋ค. ๋ด๊ฐ ํ๋ํ ์ ์๋ ๋๋ต 110์ ์ ๋ ๋๋ ๊ฒ ๊ฐ๋ค. ๋ฌธ์ ๋ณ๋ก ํ
์คํธ ์ผ์ด์ค๋ฅผ ๋ชจ๋ ํต๊ณผํ๋ฉด "๋ง์์ต๋๋ค" ๊ฐ ์ถ๋ ฅ๋๋ค. ๋ฌธ์ ๋น ํ์ธํ ์ ์๋ ํ
์คํธ ์ผ..
โ๏ธ ์ฝํ
์ค๋น/Dynamic Programming
www.acmicpc.net/problem/1904 1904๋ฒ: 01ํ์ผ ์ง์์ด์๊ฒ 2์ง ์์ด์ ๊ฐ๋ฅด์ณ ์ฃผ๊ธฐ ์ํด, ์ง์์ด ์๋ฒ์ง๋ ๊ทธ์๊ฒ ํ์ผ๋ค์ ์ ๋ฌผํด์ฃผ์
จ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ๊ฐ์ ํ์ผ๋ค์ 0 ๋๋ 1์ด ์ฐ์ฌ ์๋ ๋ฑ์ฅ์ ํ์ผ๋ค์ด๋ค. ์ด๋ ๋ ์ง๊ถ์ ๋์ฃผ๊ฐ ์ง์์ด www.acmicpc.net ์
๋ ฅ ์ฒซ ๋ฒ์งธ ์ค์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000,000) ์ถ๋ ฅ ์ฒซ ๋ฒ์งธ ์ค์ ์ง์์ด๊ฐ ๋ง๋ค ์ ์๋ ๊ธธ์ด๊ฐ N์ธ ๋ชจ๋ 2์ง ์์ด์ ๊ฐ์๋ฅผ 15746์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ์ธ๋ป๋ณด๋ฉด ์ด๋ ค์ ๋ณด์ผ ์ ์๋ค. ํ์ง๋ง ํ์ผ์ ๊ฒฝ์ฐ์ ์์๋ ๊ท์น์ด ์๋ค. N 1 2 3 4 5 6 7 2์ง ์์ด์ ๊ฒฝ์ฐ์ ์ 1 2 3 5 8 13 21 ํผ๋ณด๋์น์ ๊ฐ์ ์ ํ์์ ๊ฐ์ง๋ค. f(n) = f(n-..
โ๏ธ ์ฝํ
์ค๋น/Dynamic Programming
www.acmicpc.net/problem/9184 9184๋ฒ: ์ ๋๋ ํจ์ ์คํ ์
๋ ฅ์ ์ธ ์ ์ a, b, c๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์
๋ ฅ์ ๋ง์ง๋ง์ -1 -1 -1๋ก ๋ํ๋ด๋ฉฐ, ์ธ ์ ์๊ฐ ๋ชจ๋ -1์ธ ๊ฒฝ์ฐ๋ ์
๋ ฅ์ ๋ง์ง๋ง์ ์ ์ธํ๋ฉด ์๋ค. www.acmicpc.net ์
๋ ฅ ์
๋ ฅ์ ์ธ ์ ์ a, b, c๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์
๋ ฅ์ ๋ง์ง๋ง์ -1 -1 -1๋ก ๋ํ๋ด๋ฉฐ, ์ธ ์ ์๊ฐ ๋ชจ๋ -1์ธ ๊ฒฝ์ฐ๋ ์
๋ ฅ์ ๋ง์ง๋ง์ ์ ์ธํ๋ฉด ์๋ค. ์ถ๋ ฅ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๊ฐ๊ฐ์ a, b, c์ ๋ํด์, w(a, b, c)๋ฅผ ์ถ๋ ฅํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ dp๋ฅผ ํ์ฉํ๋ค. ํด๊ฒฐ ๊ณผ์ [0][0][0] ~ [20][20][20]์ 3์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ๊ณ ๊ฐ ์กฐ๊ฑด๋ณ๋ก ๋๋๋ค. ํน์ ๋ฒ์ ..
โ๏ธ ์ฝํ
์ค๋น/Dynamic Programming
www.acmicpc.net/problem/1003 1003๋ฒ: ํผ๋ณด๋์น ํจ์ ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ง๋ค 0์ด ์ถ๋ ฅ๋๋ ํ์์ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์
๋ ฅ ์ฒซ์งธ ์ค์ ํ
์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , N์ด ์ฃผ์ด์ง๋ค. N์ 40๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ ๋๋ 0์ด๋ค. ์ถ๋ ฅ ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ง๋ค 0์ด ์ถ๋ ฅ๋๋ ํ์์ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ํผ๋ณด๋์น ์ฌ๊ท ํจ์์ ๊ดํ ๋ฌธ์ ๋ค. 0๊ณผ 1์ด ํธ์ถ๋๋ ํ์ ์์ฒด๋ ๊ท์น์ด ์์์ ์ ์ ์๋ค. 0 1 2 3 4 5 6 7 0 1 0 1 1 2 3 5 8 1 0 1 1 2 3 5 8 13 ์์ ๊ฐ์ด ํธ์ถ๋๋ ํ์๋ (n-2) + (n-1..