Algorithm/Python

    ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๋ฐฑ์ค€ 11000๋ฒˆ - ๊ฐ•์˜์‹ค ๋ฐฐ์ •

    ์ด๋ฒˆ ํ’€์ด์˜ ํ•ต์‹ฌ ํžŒํŠธ๋Š” ์šฐ์„ ์ˆœ์œ„ ํ ์ž…๋‹ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•ด ๋ฐฑ์ค€ 11000๋ฒˆ (๊ฐ•์˜์‹ค ๋ฐฐ์ •) ๋ฌธ์ œ๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ํ’€์–ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฌธ์ œ๊ฐ€ ์‰ฌ์›Œ์ง€๋Š” ๊ฒƒ์„ ๋Š๋ผ์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ ์•Œ์•„๋ณผ ๋‚ด์šฉ ๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ œ ์„ค๋ช… 11000๋ฒˆ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฌธ์ œ ์„ค๋ช… ์ž์ฒด์— ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๊ฐ•์‹ ์ฒญ์˜ ๋งˆ์Šคํ„ฐ ๊น€์ข…ํ˜œ ์„ ์ƒ๋‹˜์ด ์•„๋‹ˆ๋ผ ์ˆ˜๊ฐ•์‹ ์ฒญ ๊ด€๋ฆฌ์ž ๊น€์ข…ํ˜œ ์„ ์ƒ๋‹˜์ด ๋” ์•Œ๋งž๋Š” ํ‘œํ˜„ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ˆ˜๊ฐ•์‹ ์ฒญ์„ ๊ด€๋ฆฌํ•ด์„œ ๊ฐ•์˜์‹ค์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜์˜ ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง€๋ฉด ํ•ด๋‹น ๊ฐ•์˜์— ํ•„์š”ํ•œ ๊ฐ•์˜์‹ค์„ ๋ฐฐ์น˜ํ•ด์ฃผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ€์žฅ ์ ๊ฒŒ ๊ฐ•์˜์‹ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด..

    Union find ์•Œ๊ณ ๋ฆฌ์ฆ˜ - Python

    Union find ์•Œ๊ณ ๋ฆฌ์ฆ˜ - Python

    ๋Œ€ํ‘œ์ ์ธ ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์˜ค๋Š˜์€ Union find ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ๊ธ€์€ ์•„๋ž˜์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. TopCoder ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠธ๋ ˆ์ด๋‹ Union find ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ธ”๋กœ๊ทธ 1 ์ด ๊ธ€์—์„œ ์•Œ์•„๋ณผ ๋‚ด์šฉ Union find ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด ์˜ˆ์ œ ๋ฌธ์ œ ๋งˆ์น˜๋ฉด์„œ Union find ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ณธ์ ์œผ๋กœ Union-find ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Disjoint Set (์ƒํ˜ธ๋ฐฐํƒ€์ ์ธ ์ง‘ํ•ฉ) ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•˜๋Š”๋ฐ์š”. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ํŒŒ์•…ํ•ด๋ด…์‹œ๋‹ค. ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜์…จ๋‚˜์š”? ์ƒํ˜ธ๋ฐฐํƒ€์  ์ง‘ํ•ฉ์€ ๊ฐ™์€ ๊ทธ๋ฃน์— ์†ํ•˜์ง€๋งŒ ๊ณตํ†ต์ ์€ ์—†๋Š” ์ง‘ํ•ฉ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Union-find๋Š” ์ด๋Ÿฐ ์ƒํ˜ธ๋ฐฐํƒ€์  ์ง‘ํ•ฉ์—์„œ์˜ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด..

    ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - Python

    ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - Python

    ์˜ค๋Š˜์€ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์†ํ•˜๋Š”๋ฐ์š”. ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ์ตœ์†Œ๋น„์šฉ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์€ ์•„๋ž˜์˜ ์ž๋ฃŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋์Šต๋‹ˆ๋‹ค. ์•ˆ๊ฒฝ์žก์ด ๊ฐœ๋ฐœ์ž (ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜) ์œ„ํ‚ค๋ฐฑ๊ณผ (ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜) Union-find ์•Œ๊ณ ๋ฆฌ์ฆ˜ (sunghyunpatricklee) ์ด ๊ธ€์—์„œ ์•Œ์•„๋ณผ ๋‚ด์šฉ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ํ•ต์‹ฌ ์•„์ด๋””์–ด ์˜ˆ์ œ ๋ฌธ์ œ ๋งˆ์น˜๋ฉด์„œ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ "MST (Minimum Spanning Tree) ๋ฅผ ์ฐพ๊ธฐ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜". ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๋ช…ํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด MST ๋Š” ๋„๋Œ€์ฒด ๋ฌด์—‡์ผ๊นŒ์š”? "๊ทธ๋ž˜ํ”„์˜ ๋…ธ๋“œ๋“ค์„ ๊ฐ€์žฅ ์ ์€ ์—ฐ๊ฒฐ, ๋น„์šฉ์œผ๋กœ ๋ชจ๋‘ ์—ฐ๊ฒฐํ•œํŠธ๋ฆฌ". ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ..