- ์ด๋ถํ์
- nestjs
- go
- ๋ค์ต์คํธ๋ผ
- DFS
- ์น๋ฆฐ์ด
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์์ฝ๋
- LCs
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- DP
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- ํธ๋ฆฌ
- Python
- ์ฌ๊ท
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋นํธ๋ง์คํน
- Union-Find
- ์นด์นด์ค ์ฝํ
- ๋นํธ๋งต
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- BFS
- ์นด์นด์ค2021
- C++
- js
- ์ํฐ๋
- golang
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (122)
Hello Ocean! ๐ผ
Spanning Tree(์ ์ฅ ํธ๋ฆฌ) ? ๊ฐ๋ ๊ทธ๋ํ ๋ด์ ๋ชจ๋ ๋ ธ๋์ ํฌํจํ๋ ํธ๋ฆฌ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ฌ์ดํด ์์ด ์ฐ๊ฒฐํ๋ ๊ฐ์ ๋ค์ ๋ชจ์๋์ ํธ๋ฆฌ ๊ทธ๋ํ์ ์ต์ ์ฐ๊ฒฐ ๋ถ๋ถ ๊ทธ๋ํ ์ต์ ์ฐ๊ฒฐ = ์ต์์ ๊ฐ์ n๊ฐ์ ๋ ธ๋๋ฅผ n-1๊ฐ์ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ ํน์ง DFS, BFS๋ฅผ ์ด์ฉํด์ ์ฐพ์ ์ ์๋ค. ํ์ ๋์ค์ ์ด์ฉ๋ ๊ฐ์ ๋ชจ์ผ๊ธฐ ํ๋์ ๊ทธ๋ํ -> ์ฌ๋ฌ๊ฐ์ spanning tree ์ฌ์ดํด X MST(Minimum Spanning Tree) ? ๊ฐ๋ Spanning Tree์ค์ ๊ฐ์ ์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ํธ๋ฆฌ ๋จ์ํ ๊ฐ์ฅ ๊ฐ์ค์น๊ฐ ์์ ๊ฐ์ ์ ์ด์ฉํ๋ค๊ณ ํด์ ์ต์ ๋น์ฉ์ด ์ป์ด์ง๋ ๊ฒ์ ์๋ ํน์ง ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ์ต์ n๊ฐ์ ๋ ธ๋์ ๊ฐ์ง๋ ๊ทธ๋ํ, n-1๊ฐ์ ๊ฐ์ ๋ง ์ด์ฉ ์ฌ์ดํด X ๊ตฌํ ๋ฐฉ๋ฒ 1. Kruskal..
๋ฌธ์ ์ค๋ช n๊ฐ์ ์์ด ์๋ ์ ์๊ฐ ์์ต๋๋ค. ์ด ์๋ฅผ ์ ์ ํ ๋ํ๊ฑฐ๋ ๋นผ์ ํ๊ฒ ๋๋ฒ๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด [1, 1, 1, 1, 1]๋ก ์ซ์ 3์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋ค์ฏ ๋ฐฉ๋ฒ์ ์ธ ์ ์์ต๋๋ค. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 ์ฌ์ฉํ ์ ์๋ ์ซ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers, ํ๊ฒ ๋๋ฒ target์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์ซ์๋ฅผ ์ ์ ํ ๋ํ๊ณ ๋นผ์ ํ๊ฒ ๋๋ฒ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ์ฃผ์ด์ง๋ ์ซ์์ ๊ฐ์๋ 2๊ฐ ์ด์ 20๊ฐ ์ดํ์ ๋๋ค. ๊ฐ ์ซ์๋ 1 ์ด์ 50 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ํ๊ฒ ๋๋ฒ๋ 1 ์ด์ 1000 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ..
๋ฌธ์ ์ค๋ช ์คํ์ด๋ค์ ๋งค์ผ ๋ค๋ฅธ ์ท์ ์กฐํฉํ์ฌ ์ ์ด ์์ ์ ์์ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์คํ์ด๊ฐ ๊ฐ์ง ์ท์ด ์๋์ ๊ฐ๊ณ ์ค๋ ์คํ์ด๊ฐ ๋๊ทธ๋ ์๊ฒฝ, ๊ธด ์ฝํธ, ํ๋์ ํฐ์ ์ธ ๋ฅผ ์ ์๋ค๋ฉด ๋ค์๋ ์ ์ฒญ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ๋๊ทธ๋ ์๊ฒฝ ๋์ ๊ฒ์ ์ ๊ธ๋ผ์ค๋ฅผ ์ฐฉ์ฉํ๊ฑฐ๋ ํด์ผ ํฉ๋๋ค. ์ข ๋ฅ ์ด๋ฆ ์ผ๊ตด ๋๊ทธ๋ ์๊ฒฝ, ๊ฒ์ ์ ๊ธ๋ผ์ค ์์ ํ๋์ ํฐ์ ์ธ ํ์ ์ฒญ๋ฐ์ง ๊ฒ์ท ๊ธด ์ฝํธ ์คํ์ด๊ฐ ๊ฐ์ง ์์๋ค์ด ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด clothes๊ฐ ์ฃผ์ด์ง ๋ ์๋ก ๋ค๋ฅธ ์ท์ ์กฐํฉ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ clothes์ ๊ฐ ํ์ [์์์ ์ด๋ฆ, ์์์ ์ข ๋ฅ]๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์คํ์ด๊ฐ ๊ฐ์ง ์์์ ์๋ 1๊ฐ ์ด์ 30๊ฐ ์ดํ์ ๋๋ค. ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์์์ ์กด์ฌํ์ง ์์ต๋๋ค. cloth..
๋ฌธ์ ์ค๋ช n๋ช ์ด ์ ๊ตญ์ฌ์ฌ๋ฅผ ์ํด ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ฐ ์ ๊ตญ์ฌ์ฌ๋์ ์๋ ์ฌ์ฌ๊ด๋ง๋ค ์ฌ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ค๋ฆ ๋๋ค.์ฒ์์ ๋ชจ๋ ์ฌ์ฌ๋๋ ๋น์ด์์ต๋๋ค. ํ ์ฌ์ฌ๋์์๋ ๋์์ ํ ๋ช ๋ง ์ฌ์ฌ๋ฅผ ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์์ ์ ์๋ ์ฌ๋์ ๋น์ด ์๋ ์ฌ์ฌ๋๋ก ๊ฐ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ ๋นจ๋ฆฌ ๋๋๋ ์ฌ์ฌ๋๊ฐ ์์ผ๋ฉด ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๊ทธ๊ณณ์ผ๋ก ๊ฐ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ ์๋ ์์ต๋๋ค.๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๋ก ํ๊ณ ์ถ์ต๋๋ค.์ ๊ตญ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ฌ๋ ์ n, ๊ฐ ์ฌ์ฌ๊ด์ด ํ ๋ช ์ ์ฌ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋ด๊ธด ๋ฐฐ์ด times๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ์ฌํญ์ ๊ตญ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋..
๋ฌธ์ ์ค๋ช ์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช ์ด์ 100,000๋ช ์ดํ์ ๋๋ค. completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค. ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์์ต๋๋ค. ์ ์ถ๋ ฅ ์ participant completion return [leo, kiki, ..
์ต๋ ์ต์ ์ฐพ๊ธฐ ํ ๋๋จผํธ ํธ๋ฆฌ ์ ํํธ๋ฆฌ(Selection tree) ๋ผ๊ณ ๋ ํ๋ฉฐ, ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ฌ๋ฌ๊ฐ์ ์ ๋ ฌ๋ ๋ฌถ์๋ค(run) ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ฐพ๊ฑฐ๋, ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ๋ ์ด๋ฅผ ์ด์ฉํ๋ฉด ๋น๊ตํ์๋ฅผ ์ค์ผ ์ ์๋ค. ์๋ฅผ๋ค์ด, ์์ธ ๊ฒฝ๊ธฐ ๊ฐ์ ์ถฉ์ฒญ ๋ฑ๋ฑ์์ ๊ฐ ์ง์ญ๋ง๋ค ๊ฐ์ฅ ํค ํฐ ์ฌ๋ 100๋ช ์ฉ์ ๋ฝ์ ๋ค์ ๊ทธ ๋ค ์ค์์ ๊ฐ์ฅ ํค๊ฐ ํฐ์ฌ๋์ ์์๋๋ก ๋ฝ๊ณ ์ถ์ ๋ ํ ๋๋จผํธ ํธ๋ฆฌ๋ฅผ ์ด์ฉํ ์ ์๋ค. ํ ๋๋จผํธ ํธ๋ฆฌ์๋ ๋ฃจํธ์ ๋ ํฐ๊ฐ์ ์ฌ๋ฆฌ๋๋, ์์ ๊ฐ์ ์ฌ๋ฆฌ๋๋์ ๋ฐ๋ผ ์น์ํธ๋ฆฌ์ ํจ์ํธ๋ฆฌ ๋ ์ข ๋ฅ๊ฐ ์๋ค. ์น์ ํธ๋ฆฌ (Winner Tree) ๋ถ๋ชจ๋ ธ๋๊ฐ ๋ ๊ฐ์ ์์๋ ธ๋๋ณด๋ค ๋ ์์ ๊ฐ์ ๋ํ๋ด๋ ์์ ์ด์งํธ๋ฆฌ์ด๋ค. ๋ฐ๋ผ์ ๋ฃจํธ๋ ธ๋๋ ํธ๋ฆฌ์์ ๊ฐ์ฅ ์์ ์์์ด๋ค. ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ฆฌ๋ k๊ฐ์ ru..