- go
- Union-Find
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋นํธ๋งต
- ์น๋ฆฐ์ด
- nestjs
- golang
- ํ๋ก๊ทธ๋๋จธ์ค
- ํธ๋ฆฌ
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์๊ณ ๋ฆฌ์ฆ
- DFS
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- DP
- ์นด์นด์ค2021
- ์ฌ๊ท
- ์ํฐ๋
- C++
- BFS
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ค์ต์คํธ๋ผ
- ์ด๋ถํ์
- ์์ฝ๋
- ์นด์นด์ค ์ฝํ
- LCs
- js
- ๋ฐฑ์ค
- ๋นํธ๋ง์คํน
- Python
- Today
- Total
Hello Ocean! ๐ผ
[์๊ณ ๋ฆฌ์ฆ] ์ต๋ ์ต์ ์ฐพ๊ธฐ (ํ ๋๋จผํธ ํธ๋ฆฌ) ๋ณธ๋ฌธ
์ต๋ ์ต์ ์ฐพ๊ธฐ
ํ ๋๋จผํธ ํธ๋ฆฌ
์ ํํธ๋ฆฌ(Selection tree) ๋ผ๊ณ ๋ ํ๋ฉฐ, ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ฌ๋ฌ๊ฐ์ ์ ๋ ฌ๋ ๋ฌถ์๋ค(run) ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ฐพ๊ฑฐ๋, ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ๋ ์ด๋ฅผ ์ด์ฉํ๋ฉด ๋น๊ตํ์๋ฅผ ์ค์ผ ์ ์๋ค.
์๋ฅผ๋ค์ด, ์์ธ ๊ฒฝ๊ธฐ ๊ฐ์ ์ถฉ์ฒญ ๋ฑ๋ฑ์์ ๊ฐ ์ง์ญ๋ง๋ค ๊ฐ์ฅ ํค ํฐ ์ฌ๋ 100๋ช ์ฉ์ ๋ฝ์ ๋ค์
๊ทธ ๋ค ์ค์์ ๊ฐ์ฅ ํค๊ฐ ํฐ์ฌ๋์ ์์๋๋ก ๋ฝ๊ณ ์ถ์ ๋ ํ ๋๋จผํธ ํธ๋ฆฌ๋ฅผ ์ด์ฉํ ์ ์๋ค.
ํ ๋๋จผํธ ํธ๋ฆฌ์๋ ๋ฃจํธ์ ๋ ํฐ๊ฐ์ ์ฌ๋ฆฌ๋๋, ์์ ๊ฐ์ ์ฌ๋ฆฌ๋๋์ ๋ฐ๋ผ ์น์ํธ๋ฆฌ์ ํจ์ํธ๋ฆฌ ๋ ์ข ๋ฅ๊ฐ ์๋ค.
์น์ ํธ๋ฆฌ (Winner Tree)
๋ถ๋ชจ๋ ธ๋๊ฐ ๋ ๊ฐ์ ์์๋ ธ๋๋ณด๋ค ๋ ์์ ๊ฐ์ ๋ํ๋ด๋ ์์ ์ด์งํธ๋ฆฌ์ด๋ค.
๋ฐ๋ผ์ ๋ฃจํธ๋ ธ๋๋ ํธ๋ฆฌ์์ ๊ฐ์ฅ ์์ ์์์ด๋ค.
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ฆฌ๋ k๊ฐ์ run์ ๋ํด ์น์ํธ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๋ฌ๊ฐ์ run๋ค ์ค์ ๊ฐ์ฅ ์์ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ์ฐพ์๋๊ฐ๋ ํธ๋ฆฌ์ด๋ฏ๋ก ๊ฐ run๋ค์ ์ค๋ฆ์ฐจ์(์์ ๊ฐ์ด ์์ ์๋๋ก)์ผ๋ก ์ ๋ ฌ๋์ด์์ด์ผ ํ๋ค.
๋จผ์ , ์๋์ ๊ฐ์ 4๊ฐ์ run๋ค์ด ์๋ค๊ณ ํ์. ๊ฐ run๋ค์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ค์ ๋์์ผ๋ก ์น์ ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
๊ฐ ์์๋ค์ ๋น๊ตํด์ ๋ ์์ ์์๋ฅผ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๊ฐ์ฅ ์์ ๊ฐ์ด ๋ฃจํธ๋ ธ๋์ ์ฌ๋ผ์จ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ด ์ํ์์ ๊ฐ์ฅ ์์ ๊ฐ(๋ฃจํธ)์ ์ญ์ ํ๊ฒ ๋๋ฉด, ํด๋น ๊ฐ์ด ๋ค์ด์๋ ๋ ธ๋๋ฅผ ๋ชจ๋ ์ญ์ ํ๋ค.
๊ทธ ํ์ ๊ฐ์ด ์ญ์ ๋ run์ ๋ค์ ์์๋ฅผ ๋น์ด์๋ ๋ฆฌํ๋ ธ๋๋ก ์ฌ๋ฆฐ๋ค
๊ฐ์ฅ ์๋์์๋ถํฐ ๋ ์์ ์์๋ฅผ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๋๋ค์ ๊ฐ์ฅ ์์ ๊ฐ์ด ๋ฃจํธ๋ ธ๋์ ์ฌ๋ผ์จ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ด๋ฐ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด์ ๊ณ์์ ์ผ๋ก ์ฌ๋ฌ๊ฐ์ run๋ค ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ๋ค์ ์ฐพ์๋ผ ์ ์๋ค.
ํจ์ ํธ๋ฆฌ (Loser Tree)
์น์ํธ๋ฆฌ์ ๊ฐ๋ ์ด ๊ฐ์ง๋ง, ๋ถ๋ชจ๋ ธ๋๊ฐ ๋ ๊ฐ์ ์์๋ ธ๋๋ณด๋ค ๋ ํฐ ๊ฐ์ ๋ํ๋ด๋ ์์ ์ด์งํธ๋ฆฌ์ด๋ค.
๋ฐ๋ผ์ ๋ฃจํธ๋ ธ๋๋ ํธ๋ฆฌ์์ ๊ฐ์ฅ ํฐ ์์์ด๋ค.
๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ฆฌ๋ k๊ฐ์ run์ ๋ํด ์น์ํธ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๋ฌ๊ฐ์ run๋ค ์ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ์ฐพ์๋๊ฐ๋ ํธ๋ฆฌ์ด๋ฏ๋ก ๊ฐ run๋ค์ ๋ด๋ฆผ์ฐจ์(ํฐ ๊ฐ์ด ์์ ์๋๋ก)์ผ๋ก ์ ๋ ฌ๋์ด์์ด์ผ ํ๋ค.
๋จผ์ , ์๋์ ๊ฐ์ 4๊ฐ์ run๋ค์ด ์๋ค๊ณ ํ์. ๊ฐ run๋ค์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ค์ ๋์์ผ๋ก ์น์ ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
๊ฐ ์์๋ค์ ๋น๊ตํด์ ๋ ํฐ ์์๋ฅผ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๊ฐ์ฅ ํฐ ๊ฐ์ด ๋ฃจํธ๋ ธ๋์ ์ฌ๋ผ์จ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ด ์ํ์์ ๊ฐ์ฅ ํฐ ๊ฐ(๋ฃจํธ)์ ์ญ์ ํ๊ฒ ๋๋ฉด, ํด๋น ๊ฐ์ด ๋ค์ด์๋ ๋ ธ๋๋ฅผ ๋ชจ๋ ์ญ์ ํ๋ค.
๊ทธ ํ์ ๊ฐ์ด ์ญ์ ๋ run์ ๋ค์ ์์๋ฅผ ๋น์ด์๋ ๋ฆฌํ๋ ธ๋๋ก ์ฌ๋ฆฐ๋ค
๊ฐ์ฅ ์๋์์๋ถํฐ ๋ ํฐ ์์๋ฅผ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๋๋ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋ฃจํธ๋ ธ๋์ ์ฌ๋ผ์จ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ด๋ฐ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด์ ๊ณ์์ ์ผ๋ก ์ฌ๋ฌ๊ฐ์ run๋ค ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ๋ค์ ์ฐพ์๋ผ ์ ์๋ค.
๊ตฌํ
ํ ๋๋จผํธ ํธ๋ฆฌ์ ๊ฒฝ์ฐ ๋ฐฐ์ด๋ก ๊ตฌํํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค
[๊ตฌํ ์ฝ๋] -- ๊ณต๋ถํด์ ์ถ๊ฐํ ๊ฒ
https://jaimemin.tistory.com/189
์ ๋ ์ ์๊ณ ๋ฆฌ์ฆ
[์ถ๊ฐํ ๊ฒ]
์ฐธ๊ณ ์๋ฃ
https://codemcd.github.io/algorithm/Algorithm-%EC%88%9C%EC%97%B4%EA%B3%BC-%EC%A1%B0%ED%95%A9/
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ตญ ์ฌ์ฌ (0) | 2020.09.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2020.09.07 |
[์๊ณ ๋ฆฌ์ฆ] ํ์ ์๊ณ ๋ฆฌ์ฆ (์ ํ, ์ด๋ถ, ํด์, BST) (0) | 2020.08.31 |
[ํ๋ก๊ทธ๋๋จธ์ค/C++] H-index , K๋ฒ์งธ ์ (0) | 2020.08.31 |
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ(์ฝ์ , ๋ฒ๋ธ, ํต) (0) | 2020.08.17 |