[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: MST (Prim/Dijkstra, Kruskal, ์‹œ๊ฐ„๋ณต์žก๋„)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 20. 15:25

MST Spanning Tree : ๊ทธ๋ž˜ํ”„ ๋‚ด์˜ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ ์šฐ์„  ํŠธ๋ฆฌ์˜ ์ •์˜๋Š” connected undirected acyclic graph (์—ฐ๊ฒฐ ๋น„๋ฐฉํ–ฅ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„)์ด๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์—ฐ๊ฒฐ๋˜์–ด์žˆ์œผ๋ฉฐ, ๋ฐฉํ–ฅ์„ฑ์€ ์—†๊ณ  ์ˆœํ™˜์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ž˜ํ”„์ด๋‹ค. ํ•˜๋‚˜์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ๋ž˜ํ”„ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํŠธ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์ค‘ ํŠน๋ณ„ํ•˜๊ฒŒ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ๋ฅผ Spanning Tree๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค๋ฅด๊ฒŒ ๋งํ•˜๋ฉด Spanning tree(์‹ ์žฅ ํŠธ๋ฆฌ)๋Š” ๊ทธ๋ž˜ํ”„์˜ ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„๋ฉด์„œ ๊ฐ„์„ ์˜ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€(์ตœ์†Œ ์—ฐ๊ฒฐ) ๊ทธ๋ž˜ํ”„์ด๋‹ค. ๊ฐ์ด ์•ˆ์˜จ๋‹ค๋ฉด ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด์ž. ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ์†Œํ•œ์˜ ๊ฐ„์„ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•œ๋‹ค. ์ด ๋ถ€..