๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ

    PRIM ์•Œ๊ณ ๋ฆฌ์ฆ˜

    ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ธ PRIM ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. (์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” KRUSKAL ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์—ˆ๋‹ค.) 1. PRIM ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ‘“ 1. ๊ธฐ๋ณธ ๊ฐœ๋… ๊ทธ๋ฆฌ๋”” ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹ ์‹œ์ž‘ ์ •์ ์—์„œ๋ถ€ํ„ฐ ์ถœ๋ฐœํ•˜์—ฌ ์‹ ์žฅํŠธ๋ฆฌ ์ง‘ํ•ฉ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ๋งŒ๋“ค์–ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹ 2. ๋™์ž‘ ๋ฐฉ์‹ ๊ทธ๋ž˜ํ”„์—์„œ ํ•˜๋‚˜์˜ ์ •์ ์„ ์„ ํƒํ•˜์—ฌ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค. ํŠธ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€๋งŒ ์•„์ง ์„ ํƒ๋˜์ง€ ์•Š์€ ์ •์ ๋“ค ์ค‘์—์„œ ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ์ •์ ์„ ํŠธ๋ฆฌ์— ํฌํ•จ์‹œํ‚จ๋‹ค. ํŠธ๋ฆฌ๊ฐ€ N-1์˜ ๊ฐ„์„ ์„ ๊ฐ€์งˆ ๋•Œ๊นŒ์ง€ 2๋ฒˆ์„ ๋ฐ˜๋ณตํ•œ๋‹ค. 2. ๊ตฌํ˜„ (JAVA) ๐Ÿคฟ ๊ตฌํ˜„ ๋ฐฉ์‹์œผ๋กœ๋Š” ์•„๋ž˜์˜ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋‹ค์Œ ์ •์ ์„ ์ฐพ๋Š” ๋ฐฉ์‹ PriorityQueue๋ฅผ ์ด์šฉํ•ด ๋‹ค์Œ ์ •์ ์„ ์ฐพ๋Š” ๋ฐฉ์‹ ์œ„์˜ ์˜ˆ์‹œ๋ฅผ ํ†ต..

    KRUSKAL ์•Œ๊ณ ๋ฆฌ์ฆ˜

    1. ๊ธฐ๋ณธ ๊ฐœ๋… ๐Ÿงช 1. ์‹ ์žฅ ํŠธ๋ฆฌ (Spanning Tree) n๊ฐœ์˜ ์ •์ ์„ ๊ฐ€์ง€๋Š” ๊ทธ๋ž˜ํ”„์—์„œ n๊ฐœ์˜ ์ •์ ์„ ๋ชจ๋‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” n-1๊ฐœ์˜ ๊ฐ„์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ (๊ฐ„์„ ์€ n-1๊ฐœ ์ด์ƒ์ผ ์ˆ˜ ์žˆ๋‹ค.) ๋ฌผ๋ก  n-1๊ฐœ ์ด์ƒ์˜ ๊ฐ„์„ ์„ ๊ฐ€์ ธ๋„ ์‹ ์žฅ ํŠธ๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. 2. ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(Minimum Spanning Tree) ๋ฌดํ–ฅ ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ€์ค‘์น˜์˜ ํ•ฉ์ด ๊ฐ€์žฅ ์ž‘์€ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค. 2. KRUSKAL ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿงซ 1. ๊ธฐ๋ณธ๊ฐœ๋… ๊ทธ๋ฆฌ๋”” ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹ ๊ทธ๋ฆฌ๋””ํ•œ ๋ฐฉ์‹ ์ž์ฒด๊ฐ€ ํ•ญ์ƒ ์ตœ์ ์˜ ํ•ด๋‹ต์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†์ง€๋งŒ, KRUSKAL ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ๋Š” ์ตœ์ ์˜ ํ•ด๋‹ต์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ฆ๋ช…๋˜์–ด์žˆ๋‹ค. 2. ๋™์ž‘ ๋ฐฉ์‹ ๋ชจ๋“  ๊ฐ„์„ ๋“ค์„ ๊ฐ€์ค‘์น˜์— ๋”ฐ๋ผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ..