๐ฉ ๋ชจ๋ ์ ์ ์์ ๋ํด์ ๋ ์ฌ์ด์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ์ ์๋ค.
cf. ๋ค์ต์คํธ๋ผ : ํ ์์์ ์์ ๋ค๋ฅธ ์ ์ ๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ
๋จ, ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๊ฐ์ค์น๊ฐ ์๋ ๋ฌด์กฐ๊ฑด ์์์ ๊ทธ๋ํ์์ ๋์
a ๐ b๋ก ์ด๋ํ ๋, ๊ฒฝ์ ์ ์ c
ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ ์ ์ ์ฌ์ด์ ์ด๋ค ๊ฒฝ์ ์ ์ด ์กด์ฌํ๋ค๋ฉด ๊ฒฝ์ ์ ์ ๊ฑฐ์ณ๊ฐ๋ ๊ฒ์ ํ์ธํ๋ฉด์ ๋ ์งง์ ๊ฒ์ ์ ํ
๐ฉ ๊ตฌํ
1. ์์ ๊ทธ๋ํ๋ฅผ ์ฐ์ ๋ฐฐ์ด๋ก ๊ตฌํํด์ผ ํ๋ค. ์ด๊ธฐ๊ฐ์ ์์ฃผ ํฐ ๊ฐ์ผ๋ก ์ค์ ํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ธฐ ์์ ๊น์ง์ ๋น์ฉ์ 0์ผ๋ก ์ค์ ํ๋ค.
2. ์์์ ์ i, ๋์ ์ j, ๊ฒฝ์ ์ ์ k๋ผ ํ ๋, ๊ตฌํ๋ ์์ ๋ค์๊ณผ ๊ฐ๋ค.
adj[i][j] = MIN(adj[i][j], adj[i][k] + adj[k][j])
ํญ์ ์์ ๊ฐ๋ง์ ๊ฐ๊ฒ ๋๋ฏ๋ก ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ์ด ๋์ง ์๋ ๊ฐ์ ์ INF๋ก ์ฒ์์ ์ด๊ธฐํํ๋ค.
EX) k=0์ผ ๋, adj[1][2] = MIN(adj[1][2], adj[1][0] + adj[0][2]) = MIN(INF, 5) = 5
EX) k=2์ผ ๋, adj[1][3] = MIN(adj[1][3], adj[1][2] + adj[2][3]) = MIN(INF, 6) = 6
๐ ์ต์ข ๋น์ฉ = ์์ ๊ฐ๋ค์ ๋ํ ๊ฐ
๊ฒฝ์ ์ k์ ์์๊ฐ ๊ผญ 0๋ถํฐ V๊น์ง ์์ฐจ์ ์ผ ํ์์๋ค. ๊ฒฝ์ ์ ์ ์ด๋ ์์๋ก ํด๋ ์๊ด์๋ค.
๐ฉ ์๊ฐ๋ณต์ก๋
O(V^3)
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ ฌ์ ์ฐ์์ ๊ณฑ์ (0) | 2024.04.29 |
---|---|
ํฌ๋-ํ์ปค์จ ์๊ณ ๋ฆฌ์ฆ(์ต๋ ์ ๋ ๋ฌธ์ ) (3) | 2024.04.19 |
๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ(์ต๋จ ๊ฒฝ๋ก) (0) | 2024.04.19 |
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(์ต๋จ ๊ฒฝ๋ก) (1) | 2024.04.19 |
ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ (์ต์ ์ ์ฅ ํธ๋ฆฌ) (0) | 2024.04.19 |