์ ์ฅํธ๋ฆฌ(SpanningTree)
๊ทธ๋ํ ์ค ๋ชจ๋ ์ ์ ์ด ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ , ๊ฐ์ ๋ค ์ฌ์ด์ ์ฌ์ดํด์ด ์๋ ๊ทธ๋ํ๋ฅผ ์๋ฏธํ๋ค. ํน์ง์ผ๋ก๋ N๊ฐ์ ์ ์ ์ ๊ฐ์ง๋ ๊ทธ๋ํ์ ์ต์ ๊ฐ์ (edge)์ ์๋ (N-1)๊ฐ์ด๋ค.
์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ (MST, Minimum SpanningTree)
์ ์ฅ ํธ๋ฆฌ๋ ๊ทธ๋ํ์์ ๋ชจ๋ ์ ์ ์ ๋ํ ์ต์ํ์ ์ฐ๊ฒฐ๋ง์ ๋จ๊ธด ๊ทธ๋ํ์ด๋ค. ํ ๊ณณ์ผ๋ก ๋๋ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ๊ฐ ์ด์ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ฆ ์ฌ์ดํด์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ์ต์ํ์ ์ฐ๊ฒฐ์ด๋ผ ๋งํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ์์น ํ๋์์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ๋ ๋จ ํ ๊ฐ์ง๋ก ๊ฒฐ์ ๋๋๋ก ํญ์ ํธ๋ฆฌ์ ํํ๋ฅผ ๋ํ๋ธ๋ค. ์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ๋ ์ด๋ฌํ ์ ์ฅ ํธ๋ฆฌ๋ค ์ค ๊ฐ์ ์ ๊ฐ์ค์น ํฉ์ด ๊ฐ์ฅ ์์ ํธ๋ฆฌ์ด๋ค. ์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ๋ ๊ทธ๋ฆฌ๋ ๊ธฐ๋ฒ์ ์ด์ฉํ์ฌ ์ต์ ์ ํด๋ฅผ ๊ตฌํ ์ ์์ผ๋ฉฐ, ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ด ๋ํ์ ์ด๋ค. (์ถ์ฒ: ๋๋ฌด์๊ธฐ)
์์ ๋ด์ฉ์ ์์ฝํ๋ฉด,
1. ์ฌ์ดํด์ด ์๋ ๊ทธ๋ํ
2. ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ๊ทธ๋ํ
3. ์ต์ํ์ ์ฐ๊ฒฐ์ ํ ๊ทธ๋ํ ( N๊ฐ์ ์ ์ → N-1๊ฐ์ ๊ฐ์ )
4. ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ทธ๋ํ
5. ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ฆผ, ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค.
'๐จ๐ปโ๐ป programming > โฝ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/ Sparse Table (ํฌ์ํ ์ด๋ธ)] ๋ฐฑ์ค 17435๋ฒ๊ณผ ํจ๊ป (0) | 2023.02.01 |
---|---|
[Algorithm/Shortest Path] A* ์๊ณ ๋ฆฌ์ฆ - ๊ตฌํC++ (0) | 2022.06.20 |
[Algorithm/MST] ํ๋ฆผ(Prim) ์๊ณ ๋ฆฌ์ฆ (0) | 2022.03.07 |
[Algorithm/MST] ํฌ๋ฃจ์ค์นผ(Kruscal) ์๊ณ ๋ฆฌ์ฆ (0) | 2022.03.03 |
[Algorithm] Union-Find (0) | 2022.02.14 |
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!