๐Ÿ˜˜ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ

phoenixKimยท2021๋…„ 9์›” 6์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•

๋ชฉ๋ก ๋ณด๊ธฐ
24/72

์ฃผ์˜ํ•  ์ .

  • ์‹œ๊ฐ„๋ณต์žก๋„๋Š” n์˜ ์„ธ์ œ๊ณฑ์ด๋ฏ€๋กœ, ์ •์ ๊ณผ ๊ฐ„์„ ์ด ๋งŽ๋‹ค๋ฉด ,
    ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ์ข‹์Œ.

๐Ÿ˜˜์ •์˜ ๊ทธ๋ฆฌ๊ณ  ์ ํ™”์‹

: dist(a,b) = min(dist(a,b) , dist(a,k) + dist(k,b));

  • a์—์„œ b๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ณด๋‹ค a์—์„œ k๋ฅผ ๊ฑฐ์ณ b๋กœ ๊ฐ€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋” ์งง์€์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์€ ๋ชจ๋“  ์ •์ ๊ฐ„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•จ.

  • ๋‹ค์ต์ŠคํŠธ๋ผ๋Š” ํ•˜๋‚˜์˜ ์ •์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์‚ฌ์šฉ

  • ์ด์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์ž.
  • ์ดˆ๊ธฐ๊ฐ’์€ ์–ด๋งˆ์–ด๋งˆ ํ•˜๊ฒŒ ํฐ๊ฐ’์œผ๋กœ , ํŒ์œผ๋กœ๋Š” ๋น„์šฉ * ๋ชจ๋“  ๊ฐ„์„ ์˜ ๊ฐ’์ด๋‹ค.
  • ์ž๊ธฐ ์ž์‹ ์˜ ๊ฐ’์€ 0์ด๊ฒ ์ง€
  • dp[i][j] : i์ •์ ์—์„œ j์ •์ ๊นŒ์ง€์˜ ๋น„์šฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ๊ฒฝ์œ ํ•˜๋Š” ์  k์— ๋Œ€ํ•ด ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

    dp[1][8] : 1๋ฒˆ ์ •์ ์—์„œ 8๋ฒˆ๊นŒ์ง€์˜ ๊ฐ€๋Š”๋ฐ์˜ ๋น„์šฉ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ,
    ๊ฒฝ์œ ํ•˜๋Š” k์ ์ด ๋งŒ์•ฝ์— ๋” ์ž‘๊ฒŒ ๋œ๋‹ค๋ฉด
    ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์•ผ ํ•œ๋‹ค.

์†Œ์Šค์ฝ”๋“œ

for(int k = 0; k < n; k++)
{
	for(int i = 0; i < n; i++)
    {
    	for(int j = 0; j < n; j++)
        {
        	dp[i][j] = min(dp[i][j] , dp[i][k] + dp[k][j]);
        }
    }
}           
        
profile
๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด