๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/42861

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์„ฌ ์—ฐ๊ฒฐํ•˜๊ธฐ

4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

n๊ฐœ์˜ ์„ฌ ์‚ฌ์ด์— ๋‹ค๋ฆฌ๋ฅผ ๊ฑด์„คํ•˜๋Š” ๋น„์šฉ(costs)์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ์†Œ์˜ ๋น„์šฉ์œผ๋กœ ๋ชจ๋“  ์„ฌ์ด ์„œ๋กœ ํ†ตํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ ์ตœ์†Œ ๋น„์šฉ์„ return ํ•˜๋„๋ก solution์„ ์™„์„ฑํ•˜์„ธ์š”.

๋‹ค๋ฆฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฑด๋„ˆ๋”๋ผ๋„, ๋„๋‹ฌํ•  ์ˆ˜๋งŒ ์žˆ์œผ๋ฉด ํ†ตํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด A ์„ฌ๊ณผ B ์„ฌ ์‚ฌ์ด์— ๋‹ค๋ฆฌ๊ฐ€ ์žˆ๊ณ , B ์„ฌ๊ณผ C ์„ฌ ์‚ฌ์ด์— ๋‹ค๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด A ์„ฌ๊ณผ C ์„ฌ์€ ์„œ๋กœ ํ†ตํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

  • ์„ฌ์˜ ๊ฐœ์ˆ˜ n์€ 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • costs์˜ ๊ธธ์ด๋Š” ((n-1) * n) / 2์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ž„์˜์˜ i์— ๋Œ€ํ•ด, costs[i][0] ์™€ costs[i] [1]์—๋Š” ๋‹ค๋ฆฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋Š” ๋‘ ์„ฌ์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด์žˆ๊ณ , costs[i] [2]์—๋Š” ์ด ๋‘ ์„ฌ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋‹ค๋ฆฌ๋ฅผ ๊ฑด์„คํ•  ๋•Œ ๋“œ๋Š” ๋น„์šฉ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ™์€ ์—ฐ๊ฒฐ์€ ๋‘ ๋ฒˆ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋”๋ผ๋„ ๊ฐ™์€ ์—ฐ๊ฒฐ๋กœ ๋ด…๋‹ˆ๋‹ค. ์ฆ‰ 0๊ณผ 1 ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋น„์šฉ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, 1๊ณผ 0์˜ ๋น„์šฉ์ด ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์„ฌ ์‚ฌ์ด์˜ ๋‹ค๋ฆฌ ๊ฑด์„ค ๋น„์šฉ์ด ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ๋‘ ์„ฌ ์‚ฌ์ด์˜ ๊ฑด์„ค์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๋ด…๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ์„ฌ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ’€์ด

์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์—์„œ ์นœ์ ˆํ•˜๊ฒŒ ์ตœ์†Œ๋น„์šฉ์œผ๋กœ ๋ชจ๋“  ์„ฌ์ด ์—ฐ๊ฒฐ๋˜๋„๋ก์ด๋ผ๊ณ  ์•Œ๋ ค์ฃผ๊ณ  ์žˆ๋„ค์š”! ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ๋Š” ํ”„๋ฆผ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋น„๊ต์  ๊ตฌํ˜„์ด ๋‹จ์ˆœํ•œ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ [์—ฌ๊ธฐ]์—, ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ [์—ฌ๊ธฐ]์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค!

 

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—„์ฒญ๋‚˜๊ฒŒ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ„์„ ๋“ค์„ ๊ฐ„์„  ๊ฐ€์ค‘์น˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. 
  2. ๊ฐ€์žฅ ๋น„์šฉ์ด ์ ์€ ๊ฐ„์„ ๋ถ€ํ„ฐ ๊บผ๋‚ด์„œ ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ์— ์ถ”๊ฐ€ํ•œ๋‹ค. 
  3. ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ์— ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ ์‚ฌ์ดํด์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฐ„์„ ์ด๋ผ๋ฉด ํŠธ๋ฆฌ์—์„œ ์ œ์™ธํ•œ๋‹ค. 
  4. ๋ชจ๋“  ๊ฐ„์„ ๋“ค์„ ๋‹ค ํ™•์ธํ•  ๋•Œ๊นŒ์ง€ 2, 3๋ฒˆ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ๊ด€๊ฑด์ด ๋˜๋Š” ํฌ์ธํŠธ๋Š” ์‚ฌ์ดํด ๋ฐœ์ƒ์„ ์ฒดํฌํ•˜๋Š”๊ฑด๋ฐ์š”, ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํด ํ™•์ธ๋„ ์‰ฝ๊ฒŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ์˜ ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ธ Union ์—ฐ์‚ฐ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ Bool ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์„œ ๋งŒ์•ฝ ์ด๋ฏธ ๊ฐ™์€ ์กฐ์ƒ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„, ๊ฐ™์€ ์ง‘ํ•ฉ์— ํฌํ•จ๋œ ์ •์ ๋“ค์ด๋ผ๋ฉด false๋ฅผ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

์‰ฝ๊ฒŒ๋งํ•˜๋ฉด, ๊ฐ™์€ ์กฐ์ƒ๋…ธ๋“œ A๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ง‘ํ•ฉ์˜ ์›์†Œ์ธ B ์™€ C๋ฅผ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜๊ฒŒ๋˜๋ฉด A->B->C->A ์˜ ์‚ฌ์ดํด์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๊ณง๋ฐ”๋กœ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค! 

 

์ด ๋ฌธ์ œ์—์„œ๋Š” ์ง์ ‘์ ์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค ํ•„์š”์—†์ด ๊ฐ„์„  ๊ฐ€์ค‘์น˜์˜ ํ•ฉ๋งŒ ๊ตฌํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์—, Union ์—ฐ์‚ฐ์—์„œ true๊ฐ€ ๋ฐ˜ํ™˜๋œ ์ •์  ์‚ฌ์ด์— ๊ฐ„์„  ๊ฐ€์ค‘์น˜๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•ด ์ •๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ฝ”๋“œ