Table of Contents
- ์์ฑ์ ์๊ทธ๋ฆผ | ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ
์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋, ๊ฐ์ค ๊ทธ๋ํ์์ ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ์ต์๊ฐ ๋๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ ์ ํ๋ค์ด ์๋ค.
- ๋จ์ผ ์ถ๋ฐ (single-source) ์ต๋จ ๊ฒฝ๋ก : ์ด๋ค ํ๋์ ์ ์ ์์ ์ถ๋ฐํ์ฌ ๋๋จธ์ง ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ค.
- ๋จ์ผ ๋์ฐฉ (single-destination) ์ต๋จ ๊ฒฝ๋ก : ๋ชจ๋ ์ ์ ์์ ์ถ๋ฐํ์ฌ ์ด๋ค ํ๋์ ์ ์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ค.
(๊ทธ๋ํ ๋ด์ ๊ฐ์ ๋ค์ ๋ค์ง์ผ๋ฉด ๋จ์ผ ์ถ๋ฐ ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ก ๋ฐ๋ ์ ์๋ค.) - ๋จ์ผ ์ (single-pair) ์ต๋จ ๊ฒฝ๋ก : ์ด๋ค ์ ์ v์์ v'๋ก ๊ฐ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ค.
- ์ ์ฒด ์ (all-pair) ์ต๋จ ๊ฒฝ๋ก : ๋ชจ๋ ์ ์ ์๋ค ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ค.
์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ๋ํ์ ์ผ๋ก ๋ค์ต์คํธ๋ผ, ๋ฒจ๋ง-ํฌ๋, ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค. ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๊ธฐ ์ ํฉํ ์ ํ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ : ์์ด ์๋ ๊ฐ์ค ๊ทธ๋ํ์์์ ๋จ์ผ ์ถ๋ฐ, ๋จ์ผ ๋์ฐฉ, ๋จ์ผ ์ ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์
- ๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ : ๊ฐ์ค ๊ทธ๋ํ์์์ ๋จ์ผ ์ถ๋ฐ, ๋จ์ผ ๋์ฐฉ, ๋จ์ผ ์ ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์
- ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ : ์ ์ฒด ์ ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์
- BFS : ๊ฐ์ค์น๊ฐ ์๊ฑฐ๋ ๊ฐ์ค์น๊ฐ ๋์ผํ ๊ทธ๋ํ์์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋น ๋ฅด๋ค.
๊ทธ๋ํ G = (V, E) ์์ ํน์ ์ถ๋ฐ ์ ์ (S)์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ์ด ์์ ๋ ์ ์์ ์ผ๋ก ๋์ํ๋ค.
- ์ถ๋ฐ ๋ ธ๋ S๋ฅผ ์ค์ ํ๋ค.
- ์ถ๋ฐ ๋ ธ๋ S์์ ๋ชจ๋ ๋ ธ๋๋ค๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด D๋ฅผ ์ด๊ธฐํํ๋ค.
- ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋ ธ๋๋ฅผ ์ ํํ๋ค. (D ๋ฐฐ์ด ๊ฒ์ฌ)
- ํด๋น ๋ ธ๋๋ฅผ ๊ฑฐ์ณ ๋ค๋ฅธ ๋ ธ๋๋ก ๊ฐ๋ ๋น์ฉ์ ๊ณ์ฐํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ ๋ฐฐ์ด D๋ฅผ ๊ฐฑ์ ํ๋ค.
- ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๋๊น์ง 3, 4 ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
- ๊ฐ ์ ์ ์ ์ต๋ ํ ๋ฒ์ฉ๋ง ๋ฐฉ๋ฌธํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ํ์ ํ๋ค.
- ์์ง ๋ฐฉ๋ฌธํ์ง ์์ ์ ์ ๋ค ์ค ์ต๋จ ๊ฑฐ๋ฆฌ์ธ ์ ์ ์ ์ฐพ์ ๋ฐฉ๋ฌธํ๋ ์์ผ๋ก ์งํ๋๋ค.
- ์ด ๋, ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ์ต์์ธ ์ ์ ์ ์ฐพ๋ ๊ณผ์ ์์ PriorityQueue ๋๋ Heap ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ฉด ๋์ฑ ๊ฐ์ ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ๋ฅํ๋ค.
- ๋งค ์๊ฐ๋ง๋ค ์ต๋จ ๊ฑฐ๋ฆฌ์ ์ ์ ์ ์ ํํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฏ๋ก ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ถ๋ฅ๋๋ค.
- ์ด V x V ๋ฒ ์ฐ์ฐ์ด ํ์ํ๋ฏ๋ก O(V^2) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์๋ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋ ธ๋๋ฅผ ์ ํํ๋ ๊ณผ์ ์ด ์๋ค. ์ด ๊ณผ์ ์์ ๋ค์๊ณผ ๊ฐ์ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
- ๋ฐฉ๋ฌธํ๋์ง ์ฌ๋ถ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด์ ๋ ธ๋์ ํฌ๊ธฐ(V) ๋งํผ ์์ฑํ๊ณ ์ ๊ทผํด์ผ ํ๋ค.
- D ๋ฐฐ์ด์ ๋ชจ๋ ์ํํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ์งง์ ๋ ธ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
์ด ๊ณผ์ ์ PriorityQueue ๋๋ Heap ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ฉด ๋
ธ๋๋ฅผ ์ ํํ๋ ๋น์ฉ์ O(V)์์ O(log{ํ์ ์ ์ฅํ ์ ์ ์ ๊ฐ์
})๋ก ์ค์ผ ์ ์๋ค.
์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง์ ๋
ธ๋๋ฅผ ์ ํํด์ผ ํ๋ฏ๋ก ์ต์ ํ์ ์ฌ์ฉํ๋ฉด ๋๋ฉฐ, ํ์ ํตํด ๊ตฌํ๋ Priority Queue๋ฅผ ์ฌ์ฉํด๋ ์ข๋ค.
๋์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ถ๋ฐ์ ์ ๋ํ์ฌ D ๋ฐฐ์ด์ ์ด๊ธฐํํ ๋
D[S] = 0
์ ํด์ค๋ค. ์ด์ ๋์์ ํ์ ๋ ธ๋ ์ ๋ณด(๋ฒํธ, ๊ฑฐ๋ฆฌ :[S, 0]
)๋ฅผ ๋ฃ์ด์ค๋ค. - ํ์์ ๋งจ ์์ ์๋ ๋ ธ๋ I๋ฅผ ๊บผ๋ธ๋ค.
- ๋ง์ผ ๊บผ๋ธ ๋ ธ๋ I์ ๊ฑฐ๋ฆฌ ์ ๋ณด๊ฐ ํ์ฌ D[I]๋ณด๋ค ํฌ๋ค๋ฉด ์ด๋ฏธ ๋ฐฉ๋ฌธํ ๋ ธ๋์ผ ๊ฒ์ด๋ฏ๋ก ๋ฌด์ํ๋ค.
- I๋ฅผ ๋์์ผ๋ก ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋๋ฐ, D ๋ฐฐ์ด์ด ๊ฐฑ์ ๋ ๊ฒฝ์ฐ ๊ทธ ๋
ธ๋ ์ ๋ณด๋ฅผ ํ์ ๋ฃ๋๋ค.
(D[J] = D[I] + W ๋ก ๊ฐฑ์ ๋ ๊ฒฝ์ฐ ํ์ ๋ ธ๋ J([J, D[J]]
)๋ฅผ ์ฝ์ ํ๋ค.) - ํ์ ๋ ธ๋๊ฐ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
๊ฐ์ ๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ O(ElogV) ์ด๋ค. (O(ElogE) โ O(ElogVยฒ) โ O(2ElogV) โ O(ElogV))
๊ฐ์ ๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
๊ทธ๋ํ G = (V, E) ์์ ํน์ ์ถ๋ฐ ์ ์ (S)์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฌ๋ฆฌ, ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ๋ ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ค ๊ทธ๋ํ (V, E)์์ ์ด๋ค ์ ์ A์์ ์ ์ B๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ ์ต๋ V - 1๊ฐ์ ๊ฐ์ ์ ์ฌ์ฉํ๋ค. (= ์์ ์ ์ A๋ฅผ ํฌํจํ์ฌ ์ต๋ V๊ฐ์ ์ ์ ์ ์ง๋๋ค.)
- ์ถ๋ฐ ๋ ธ๋ S๋ฅผ ์ค์ ํ๋ค.
- ์ถ๋ฐ ๋ ธ๋ S์์ ๋ชจ๋ ๋ ธ๋๋ค๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด D๋ฅผ ์ด๊ธฐํํ๋ค.
- ๊ทธ๋ํ์ ๋ชจ๋ ๊ฐ์ ์ ๋๋ฉด์ ๊ฐ ๋ ธ๋๋ก ๊ฐ๋ ๋น์ฉ์ ๊ณ์ฐํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ ๋ฐฐ์ด D๋ฅผ ๊ฐฑ์ ํ๋ค.
- 3 ๊ณผ์ ์ (๋ ธ๋์ ๊ฐ์ - 1)๋ฒ, ์ฆ V-1๋ฒ ๋ฐ๋ณตํ๋ค.
- 3 ๊ณผ์ ์ ํ ๋ฒ ๋ ๋ฐ๋ณตํ์์ ๋, ๋ฐฐ์ด D๊ฐ ๊ฐฑ์ ๋๋ฉด ์์ ์ฌ์ดํด์ด ์๋ ๊ฒ์ผ๋ก ํ๋จํ๋ค.
๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
- ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ๋ ๊ฐ๋ฅํ๋ฏ๋ก, ์์ ์ฌ์ดํด์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๋ฐ์ ธ์ผ ํ๋ค.
- ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ V - 1๋ฒ E๊ฐ์ ๋ชจ๋ ๊ฐ์ ์ ํ์ธํ๋ค.
- ์์ ์ฌ์ดํด ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด์ ํ ๋ฒ ๋ (V๋ฒ์งธ) E๊ฐ์ ๊ฐ์ ์ ํ์ธํ๋ค. ์ด ๋ ๊ฑฐ๋ฆฌ ๋ฐฐ์ด์ด ๊ฐฑ์ ๋์๋ค๋ฉด, ๊ทธ๋ํ G๋ ์์ ์ฌ์ดํด์ ๊ฐ์ง๋ค.
- ๋ฐ๋ผ์ ์ด V x E ๋ฒ ์ฐ์ฐํ๋ฏ๋ก O(VE) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๊ทธ๋ํ G = (V, E) ์์ ๋ชจ๋ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ์ด๋ค ๋ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก๋ ์ด๋ค ๊ฒฝ์ ์ง(K)๋ฅผ ๊ฑฐ์น๊ฑฐ๋, ๊ฑฐ์น์ง ์๋ ๊ฒฝ๋ก ์ค ํ๋์ด๋ค. ์ฆ ์ ์ A์ ์ ์ B ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก๋ A-B ์ด๊ฑฐ๋ A-K-B ์ด๋ค.
- ๋ง์ฝ ๊ฒฝ์ ์ง(K)๋ฅผ ๊ฑฐ์น๋ค๋ฉด ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ด๋ฃจ๋ ๋ถ๋ถ ๊ฒฝ๋ก ์ญ์ ์ต๋จ ๊ฒฝ๋ก์ด๋ค. ์ฆ A-B์ ์ต๋จ ๊ฒฝ๋ก๊ฐ A-K-B๋ผ๋ฉด A-K์ K-B๋ ๊ฐ๊ฐ ์ต๋จ ๊ฒฝ๋ก์ด๋ค.
- ๊ฐ ๋ ธ๋๋ค ์ฌ์ด์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๋ 2์ฐจ์ ๋ฐฐ์ด D๋ฅผ ์ด๊ธฐํํ๋ค.
- ๊ฐ ๋ ธ๋๊ฐ ๊ฒฝ์ ์ง K๋ฅผ ์ง๋ ๋๋ง๋ค ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด D๋ฅผ ๊ฐฑ์ ํ๋ค.
- ๋์ ๊ณํ๋ฒ์ผ๋ก ํด๊ฒฐํ๋ฉฐ, ์ ํ์์
D[A][B] = min(D[A][B], D[A][K] + D[K][B]
์ด๋ค.
ํ๋ก์ด๋-์์
์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
- ์ฌ์ดํด์ด ์๋ค๋ฉด ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ ธ๋ ์ ์ฉ ๊ฐ๋ฅํ๋ค.
- ๋์ ๊ณํ๋ฒ(Dynamic Programming)์ผ๋ก ์ ๊ทผํ๋ค.
- ๋ชจ๋ ๊ฐ๋ฅํ ๊ฒฝ์ ์ง์ ๋ํด์ ๋ชจ๋ ์ ์ -> ๋ชจ๋ ์ ์ ์ผ๋ก ๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ํ์ธํ๋ฏ๋ก ์ฐ์ฐ ํ์๋ V^3์ด๊ณ , ๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๋ O(V^3) ์ด๋ค.
์คํฐ๋ ์๋ฃ - ์์ฑ์ ์ ํฌ์ฌ | Union Find & Kruskal Algorithm
์๋ก์ ์งํฉ(Disjoint Set)์ ๊ต์งํฉ์ด ์๋, ์ฆ ๊ณตํต๋๋ ์์๊ฐ ์๋ ์งํฉ์ ๋งํ๋ค. Union-Find๋ ์๋ก์ ์งํฉ์ ํํํ ๋ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ์๋ก์ ์งํฉ์ ์ ๋ณด๋ฅผ ํ์ธ(Find)ํ๊ณ ์กฐ์(Union)ํ๋ค. Union Find ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ฉด ์๋ก ๋ค๋ฅธ ๋ ๋ ธ๋๊ฐ ๊ฐ์ ์งํฉ ๋ด์ ์ํด ์๋์ง ํ์ธํ ์ ์๋ค.
root ๋ฐฐ์ด์ i ์์์ ๋ถ๋ชจ ๋ ธ๋ ๋ฒํธ๋ฅผ ์ ์ฅํ๋ค. i ์์๊ฐ ๋ฃจํธ ๋ ธ๋๋ผ๋ฉด, ์๊ธฐ ์์ ์ ๋ฒํธ๋ฅผ ์ ์ฅํ๋ค.
void initialize() {
for (int i = 1; i <= N; i++) {
root[i] = i;
}
}
int find(int n) {
if (root[n] == n) return n;
return root[n] = find(root[n]);
}
void merge(int a, int b) {
root[find(b)] = find(a);
}
๋ฌดํฅ ๊ทธ๋ํ G๊ฐ ์ํ์ด ์๋ ์ฐ๊ฒฐ ๊ทธ๋ํ์ด๋ฉด ๊ทธ๋ํ G๋ ํธ๋ฆฌ(Tree)์ด๋ค.
์ ์ฅ ํธ๋ฆฌ (Spanning Tree)๋ ๋ฌดํฅ ์ฐ๊ฒฐ ๊ทธ๋ํ G์ ๋ถ๋ถ ๊ทธ๋ํ์ด๋ฉฐ, G์ ๋ชจ๋ ์ ์ ์ ํฌํจํ๋ ํธ๋ฆฌ(Tree)์ธ ๊ทธ๋ํ์ด๋ค.
์ฌ๊ธฐ์ ์ต์ ์ ์ฅ ํธ๋ฆฌ (Minimum Spanning Tree, MST)๋ ๋ฌดํฅ ์ฐ๊ฒฐ ๊ทธ๋ํ G์์ ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ์ต์์ธ ์ ์ฅ ํธ๋ฆฌ์ด๋ค. ์ด ์ต์ ์ ์ฅ ํธ๋ฆฌ MST๋ฅผ ๊ตฌํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ, ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค. ๊ทธ ์ค ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ๋นํด ๋๋ฆฌ๊ณ ์ ์ ์ฐ์ด๋ฏ๋ก ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๊ฒ ๋ค. ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ Union-Find๋ฅผ ์ฌ์ฉํด ๊ตฌํํ ์ ์๋ค.
- (Cost, A, B) ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ ๋ชจ๋ ๊ฐ์ ๋ค์ ์ ๋ณด๋ฅผ Priority Queue์ ์ ์ฅํ๋ค. (์ต์ ํ)
- Priority Queue์์ ํ๋์ฉ popํ๋ฉด์ ๋ง์ฝ A์ B๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค๋ฉด A์ B๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ ์ฒด ๋น์ฉ์ Cost๋ฅผ ๋ํ๋ค.
- ๋ง์ผ A์ B๊ฐ ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด ๋ฌด์ํ๋ค.
๊ตต์ ๊ธ์จ ๋ถ๋ถ์ Union-Find๋ก ๊ตฌํํ๋ค.
Kruskal ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ