Algorithm/Python
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ : ๋ฐฑ์ค 11000๋ฒ - ๊ฐ์์ค ๋ฐฐ์
์ด๋ฒ ํ์ด์ ํต์ฌ ํํธ๋ ์ฐ์ ์์ ํ ์ ๋๋ค. ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด ๋ฐฑ์ค 11000๋ฒ (๊ฐ์์ค ๋ฐฐ์ ) ๋ฌธ์ ๋ฅผ ํ์ด์ฌ์ผ๋ก ํ์ด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ํด๋น ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ฌ์ฉํ์๋ฉด ๋ฌธ์ ๊ฐ ์ฌ์์ง๋ ๊ฒ์ ๋๋ผ์ค ์ ์์ ๊ฒ ์ ๋๋ค. ์ด๋ฒ ๊ธ์์ ์์๋ณผ ๋ด์ฉ ๋ฌธ์ ์ค๋ช ๋ฌธ์ ์ ํต์ฌ ์์ด๋์ด ๋ฌธ์ ํ์ด ๋ฌธ์ ์ค๋ช 11000๋ฒ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ฌธ์ ์ค๋ช ์์ฒด์ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. ์๊ฐ์ ์ฒญ์ ๋ง์คํฐ ๊น์ข ํ ์ ์๋์ด ์๋๋ผ ์๊ฐ์ ์ฒญ ๊ด๋ฆฌ์ ๊น์ข ํ ์ ์๋์ด ๋ ์๋ง๋ ํํ ๊ฐ์ต๋๋ค. ์ฆ ์ด๋ฒ ๋ฌธ์ ๋ ์๊ฐ์ ์ฒญ์ ๊ด๋ฆฌํด์ ๊ฐ์์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐฐ์นํ๋ ๊ฒ์ ์๊ตฌํฉ๋๋ค. ๊ฐ์์ ์๊ฐ์ด ์ฃผ์ด์ง๋ฉด ํด๋น ๊ฐ์์ ํ์ํ ๊ฐ์์ค์ ๋ฐฐ์นํด์ฃผ๋ ๊ฒ ์ ๋๋ค. ์ด๋ ๊ฐ์ฅ ์ ๊ฒ ๊ฐ์์ค์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฌป๊ณ ์์ต๋๋ค. ๋ฌธ์ ์ ํต์ฌ ์์ด๋์ด..
Union find ์๊ณ ๋ฆฌ์ฆ - Python
๋ํ์ ์ธ ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ. ์ค๋์ Union find ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฒ๊ธ์ ์๋์ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค. TopCoder ์๊ณ ๋ฆฌ์ฆ ํธ๋ ์ด๋ Union find ์๊ณ ๋ฆฌ์ฆ ๋ธ๋ก๊ทธ 1 ์ด ๊ธ์์ ์์๋ณผ ๋ด์ฉ Union find ์๊ณ ๋ฆฌ์ฆ ํต์ฌ ์์ด๋์ด ์์ ๋ฌธ์ ๋ง์น๋ฉด์ Union find ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ์ ์ผ๋ก Union-find ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋์ Disjoint Set (์ํธ๋ฐฐํ์ ์ธ ์งํฉ) ์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋๋ฐ์. ์๋์ ๊ทธ๋ฆผ์ ํตํด ๊ฐ๋จํ ํ์ ํด๋ด ์๋ค. ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ํ์ ํ์ จ๋์? ์ํธ๋ฐฐํ์ ์งํฉ์ ๊ฐ์ ๊ทธ๋ฃน์ ์ํ์ง๋ง ๊ณตํต์ ์ ์๋ ์งํฉ์ ๋ปํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Union-find๋ ์ด๋ฐ ์ํธ๋ฐฐํ์ ์งํฉ์์์ ๋ฐ์ดํฐ ์กฐ์์ ํ๋ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด..
ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ - Python
์ค๋์ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํ๋๋ฐ์. ์ฌ๋ฌ๊ฐ์ ๋ ธ๋๋ฅผ ์ต์๋น์ฉ์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์ ์๋์ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์ต๋๋ค. ์๊ฒฝ์ก์ด ๊ฐ๋ฐ์ (ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ) ์ํค๋ฐฑ๊ณผ (ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ) Union-find ์๊ณ ๋ฆฌ์ฆ (sunghyunpatricklee) ์ด ๊ธ์์ ์์๋ณผ ๋ด์ฉ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ด๋ ํต์ฌ ์์ด๋์ด ์์ ๋ฌธ์ ๋ง์น๋ฉด์ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ด๋ "MST (Minimum Spanning Tree) ๋ฅผ ์ฐพ๊ธฐ์ํ ์๊ณ ๋ฆฌ์ฆ". ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๋ ํต์ฌ์ ์ธ ๋ฌธ์ฅ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด MST ๋ ๋๋์ฒด ๋ฌด์์ผ๊น์? "๊ทธ๋ํ์ ๋ ธ๋๋ค์ ๊ฐ์ฅ ์ ์ ์ฐ๊ฒฐ, ๋น์ฉ์ผ๋ก ๋ชจ๋ ์ฐ๊ฒฐํํธ๋ฆฌ". ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ..