๋ชจ๋ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํ๋ ๋ฌธ์
- 2์ฐจ์ ๋ฐฐ์ด์ ์ด์ฉํ 3์ค ๋ฐ๋ณต๋ฌธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค
- ๊ฐ์ค์น๊ฐ ์์ ์ ์์ผ ๋๋ ๊ฐ๋ฅํ๋ค (๋จ, ์์ ์ฌ์ดํด์ด ์์ด์ผ ํ๋ค)
Dijkstra๋ ํ๋์ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด์๋ค๋ฉด
distance_k[i][j]
: 0๋ถํฐ k๊น์ง์ ์ ์ ๋ง์ ์ด์ฉํ ์ ์ i์์ j๊น์ง์ ์ต๋จ ๊ฒฝ๋ก ๊ธธ์ด
- distance[i][j] = min(distance[i][j], distance[i][n] + distance[n][j])
- distance[i][j] = min(distance[i][j], distance[i][n] + distance[n][j])
for k <- 0 to n-1
for i <- 0 to n-1
for j <- 0 to n-1
distance[i][j] = min(distacne[i][j], distance[i][n] + distance[n][j])