ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algorithm] Kruskal Algorithm(ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜)
    Algorithm 2020. 9. 6. 03:20
    ๋ฐ˜์‘ํ˜•

    Kruskal Algorithm

    ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ€์žฅ ์ตœ์†Œ ๋น„์šฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ง๋กœ๋Š” ์ตœ์†Œ ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (https://programmers.co.kr/learn/courses/30/lessons/42861?language=cpp) ์ด ๋ฌธ์ œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ฐœ๋…์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

    1. ์ตœ์†Œ ๋น„์šฉ ์ˆœ์„œ์— ๋งž๊ฒŒ ๊ฐ„์„ ๋“ค์„ ์ •๋ ฌ์‹œํ‚ต๋‹ˆ๋‹ค.
    2. ์ •๋ ฌ๋œ ์ˆœ์„œ์— ๋งž๊ฒŒ ๊ทธ๋ž˜ํ”„์— ํฌํ•จ์‹œํ‚ค๋Š”๋ฐ ํฌํ•จ์‹œํ‚ค๊ธฐ ์ „์—๋Š” ์‚ฌ์ดํด ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    3. ์‚ฌ์ดํด์„ ํ˜•์„ฑํ•œ ๊ฒฝ์šฐ๋Š” ํฌํ•จ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์‚ฌ์ดํด์„ ํ˜•์„ฑ ์—ฌ๋ถ€๋Š” union-find ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜์—ฌ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์˜ˆ์‹œ


    ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ตœ์†Œ ๋น„์šฉ ์ˆœ์„œ์— ๋งž๊ฒŒ ๊ฐ„์„ ๋“ค์„ ์ •๋ ฌ์‹œํ‚ต๋‹ˆ๋‹ค.


    ๊ทธ๋ฆฌ๊ณ  ์ •๋ ฌ๋œ ์ˆœ์„œ์— ๋งž๊ฒŒ ๊ทธ๋ž˜ํ”„์— ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ํ™•์ธํ•  ๋•Œ (0, 1) -> (1, 3) -> (0, 2) ์ˆœ์„œ๋Œ€๋กœ ํฌํ•จํ•˜๋ฉด ๋‹ต์ด ๋‚˜์˜ค๋Š” ๊ตฌ์กฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    ํ•ด๋‹น ๊ทธ๋ž˜ํ”„๊ฐ€ union-find ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋‘ ๊ฐ™์€ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋’ค ๊ฐ„์„ ๋“ค์€ ๋ฌด์‹œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    ์ด ์˜ˆ์™€ ๋‹ค๋ฅด๊ฒŒ ์ •๋ ฌ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๋น„๊ต ๋…ธ๋“œ๋ผ๋ฆฌ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๋ผ๊ณ  ํŒ๋‹จํ•˜๋ฉด ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๊ฐ„์„ ๋ถ€ํ„ฐ ํฌํ•จ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    ์ฝ”๋“œ

    • ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.
    ๋ฐ˜์‘ํ˜•
Designed by Tistory.