TL;DR: FloydโWarshall ์๊ณ ๋ฆฌ์ฆ์ ๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํฉ๋๋ค. ๊ทธ๋ํ์์ ๊ฑฐ๋ฆฌ ํ๋ ฌ์ ์ด๊ธฐํํ ๋ค์ ๋ชจ๋ ์ค๊ฐ ์ ์ k์ ๋ํด ๊ฐ ์์ dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. O(Vยณ) ์๊ฐ๊ณผ O(Vยฒ) ๊ณต๊ฐ์์ ์คํ๋๋ฉฐ ์์ ๋๊ฐ์ ํญ๋ชฉ์ ํตํด ์์ ์ํ์ ๋ ธ์ถํ ์ ์์ต๋๋ค.
ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ: ์ฝ๋ฉ ์ธํฐ๋ทฐ ๊ฐ์ด๋
๋ฐ๋ณต, ๋ฃจํ ๋ถ๋ณ, ํ๋ ฌ ์ถ์ , ๊ฒฝ๋ก ์ฌ๊ตฌ์ฑ, ์ฃ์ง ์ผ์ด์ค ๋ฐ ๋ณต์ก์ฑ ์ค๋ช ์ ์ฐ์ตํฉ๋๋ค.
YesToTheOffer รฌยยฌรฌยยฉรญยยด รซยณยดรชยธยฐ
ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ ๋ฌด์์ ๋๊น?
FloydโWarshall์ ๋ชจ๋ ์ ๋ ฌ๋ ์ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก์ ๋ํ ๋์ ํ๋ก๊ทธ๋๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋ฐฉํฅ์ฑ ๋๋ ๋ฐฉํฅ์ฑ์ด ์๋ ๊ฐ์ค์น ๊ทธ๋ํ์ ํจ๊ป ์๋ํ๋ฉฐ ์์ ๊ฐ์ ์ ํ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ด๋ จ๋ ์์ ๊ฐ์ค์น ์ฌ์ดํด์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ฌ์ดํด์ ๋ฐ๋ณต์ ์ผ๋ก ํก๋จํ๋ฉด ๊ฒฝ๋ก ๋น์ฉ์ด ๊ณ์ ๊ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ์ต๋จ ๊ฒฝ๋ก์๋ ์ ํ ์ต์๊ฐ์ด ์์ต๋๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ์ญ ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ ํ๋์ ๊ฒฐ์ ์ผ๋ก ๋ฐ๊พธ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ต์ ๋จ์ต๋๋ค. ํ์ฌ ์ค๊ฐ ์ ์ k์ ๊ฒฝ์ฐ i์์ j๋ก ๊ฐ์ฅ ์ ์๋ ค์ง ๊ฒฝ๋ก๊ฐ ์๋ ๊ทธ๋๋ก ๋ ๋์๊ฐ์, ์๋๋ฉด i์์ k๋ก ์ด๋ํ ๋ค์ k์์ j๋ก ์ด๋ํ๋ ๊ฒ์ด ๋ ๋์๊ฐ์?
์ฌ๋ฐ์ ์ด๋ป๊ฒ ๋์ถํฉ๋๊น?
D(k, i, j)๋ฅผ i์์ j๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ก ์ ์ํ๋ฉฐ, ์ค๊ฐ ์ ์ ์ ์ฒ์ k๊ฐ์ ์ ์ ์์๋ง ๋์ฌ ์ ์์ต๋๋ค. ํ์ฉ๋๋ ์ต๋จ ๊ฒฝ๋ก๋ D(kโ1, i, j)๋ฅผ ์ ์งํ๋ฉด์ ์ ์ k๋ฅผ ํผํ๊ฑฐ๋ k๋ฅผ ์ฌ์ฉํ๊ณ i์์ k๊น์ง์ ์ต์์ ํ์ฉ ๊ฒฝ๋ก์ k์์ j๊น์ง์ ์ต์์ ํ์ฉ ๊ฒฝ๋ก๋ก ๋ถํ ๋ฉ๋๋ค.
๊ทธ๊ฒ์ ์ฌ๋ฐ์ ์ ๊ณตํฉ๋๋ค :
D(k, i, j) = min(D(kโ1, i, j), D(kโ1, i, k) + D(kโ1, k, j))
k ๋จ๊ณ๋ ํธํ๋๋ ๋ฐฉ์์ผ๋ก k-1 ๋จ๊ณ ๊ฐ์๋ง ์์กดํ๊ธฐ ๋๋ฌธ์ ํ๋ ฌ์ ๊ทธ ์๋ฆฌ์์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด ์ถ๋ก ์ ์ค์ํ ๋ฃจํ ์์๋ ์ค๋ช ํฉ๋๋ค. k๋ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ๋ฃจํ์ฌ์ผ ํฉ๋๋ค. i ๋๋ j๋ฅผ ์ธ๋ถ์ ๋์ผ๋ฉด ๋ถ๋ณ์ฑ์ด ๋ณ๊ฒฝ๋๊ณ ๋ถ๋ถ์ ์ผ๋ก ํ์ฉ๋ ๊ฒฝ๋ก๋ฅผ ์๋ชป ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฑฐ๋ฆฌ ํ๋ ฌ์ ์ด๋ป๊ฒ ์ด๊ธฐํํฉ๋๊น?
V x V ํ๋ ฌ์ ๋ง๋ญ๋๋ค. dist[i][i]์ 0์ผ๋ก ์ค์ ํ๊ณ ์ง์ ๊ฐ์ฅ์๋ฆฌ์ ์ ์ ๊ฐ์ค์น๋ก ์ค์ ํ๊ณ ์ง์ ๊ฐ์ฅ์๋ฆฌ๊ฐ ์์ผ๋ฉด ๋ฌดํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํํํ ๋ชจ์๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด ๊ฐ์ฅ ์์ ์ง์ ์ค๋์ ์ ์งํ์ญ์์ค. ๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ ๋ฌดํ ๊ฐ์์๊ฐ ์ค๋ฒํ๋ก๋๊ฑฐ๋ ์๋ชป๋ ํ๋ณด๋ฅผ ์์ฑํ์ง ์๋๋ก ๋ ๋ค ์ ํํ์ง ํ์ธํ์ญ์์ค.
| ๋งคํธ๋ฆญ์ค ์ | ์ด๊ธฐ๊ฐ | ์ด์ |
|---|---|---|
| dist[i][i] | 0 | ์ ์ ์์ ์ ์ ์์ฒด๊น์ง์ ๋น ๊ฒฝ๋ก |
| ์ง์ ๊ฐ์ฅ์๋ฆฌ i โ j | ๊ฐ์ฅ์๋ฆฌ ๊ฐ์ค์น | ์ค๊ฐ ์ ์ ์ด ์๋ ์ต์ ์ ๊ฒฝ๋ก |
| ์ง์ ์ ์ธ ๊ฐ์ฅ์๋ฆฌ ์์ | ์ธํผ๋ํฐ | ์์ ์ฐ๊ฒฐํ ์ ์๋์ง ์์ง ์๋ ค์ง์ง ์์์ต๋๋ค. |
| ํํํ ๋ชจ์๋ฆฌ | ์ต์ ๊ฐ์ฅ์๋ฆฌ ๋ฌด๊ฒ | ์ต์ ์ ์ง์ ์ต์ ์ ๊ธฐ๋ณธ ์ฌ๋ก์ ๋๋ค. |
์ธํฐ๋ทฐ์์ FloydโWarshall์ ์ด๋ป๊ฒ ์ถ์ ํฉ๋๊น?
ํ๋ ฌ ํ์ ์์ค๋ก ๋ ์ด๋ธ์ ์ง์ ํ๊ณ ์ด์ ๋์์ผ๋ก ๋ ์ด๋ธ์ ์ง์ ํฉ๋๋ค. ์ด๊ธฐ ํ๋ ฌ์ ํ์ํ ๋ค์ ํ๋์ k๋ฅผ ์ ํํ๊ณ ๋ํ ์ ์ ํ๊ฐํฉ๋๋ค. ๊ฐ ์ ์ ๋ํด ํ์ฌ ๊ฐ์ k๋ฅผ ํตํ ๊ฒฝ๋ก์ ๋น๊ตํฉ๋๋ค. ๋ ์ธ๊ทธ๋จผํธ ๋ชจ๋์ ์ฐ๊ฒฐํ ์ ์๊ณ ์ ํฉ๊ณ๊ฐ ๋ ์์ ๊ฒฝ์ฐ์๋ง ์ ๋ฐ์ดํธํ์ธ์.
์ผ๋ฐ์ ์ผ๋ก ํฐ ์๋ฅผ ์ํด ๋ชจ๋ ํ๋ ฌ์ ๊ทธ๋ฆด ํ์๋ ์์ต๋๋ค. ํ ๊ฐ์ง ๊ฐ์ ์ฌํญ๊ณผ ํ ๊ฐ์ง ๋ณ๊ฒฝ๋์ง ์์ ๊ฐ์ ํฌํจํ์ฌ ๋ถ๋ณ์ฑ์ ์ ์ฆํ๊ธฐ์ ์ถฉ๋ถํ ์ ์ ์ถ์ ํฉ๋๋ค. k๋ฅผ ์๋ฃํ ํ ๋ชจ๋ ํ๋ ฌ ํญ๋ชฉ์ ์ค๊ฐ ์ ์ ์ด ์ฒ๋ฆฌ๋ ์งํฉ์ผ๋ก ์ ํ๋๋ ๊ฒฝ๋ก ์ค์์ ์ต์ ์์ ๋ช ์ํฉ๋๋ค.

์ด๋ค ์์ฌ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๊น?
์ธ๋ถ์ k๊ฐ ์๋ ์ธ ๊ฐ์ ์ค์ฒฉ ๋ฃจํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
for k from 0 to V - 1:
for i from 0 to V - 1:
for j from 0 to V - 1:
if dist[i][k] is finite and dist[k][j] is finite:
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])
์ ํ ๊ฒ์ฌ์ ์ซ์ ์ ํ์ ๋ํด ์ค๋ช ํ์ธ์. ํฐ ์ ์ ์ผํฐ๋์ด ์๋ ์ธ์ด์์๋ ์์ ๊ฐ์ ๋ฌดํ๋๋ฅผ ์ถ๊ฐํ๋ฉด ์ ํํด ๋ณด์ด๊ฑฐ๋ ์ค๋ฒํ๋ก๋ ์ ์์ต๋๋ค. ๊ฐ๋๋ ๋จ์ํ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ด ์๋๋ผ ์ ํ์ฑ์ ์ผ๋ถ์ ๋๋ค.
์๊ฐ๊ณผ ๊ณต๊ฐ์ ๋ณต์ก์ฑ์ ๋ฌด์์ ๋๊น?
์ธ ๊ฐ์ ๋ฃจํ๋ k, i, j์ ๋ชจ๋ ์กฐํฉ์ ๊ฒ์ฌํ๋ฏ๋ก ๋ฐํ์์ O(Vยณ)์ ๋๋ค. ๊ฑฐ๋ฆฌ ํ๋ ฌ์ O(Vยฒ) ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค. ๋ด๋ถ ์ ๋ฐ์ดํธ๋ 3์ฐจ์ ํ ์ด๋ธ์ ํผํ๋ ๋ฐ๋ฉด, ๊ฒฝ๋ก ์ฌ๊ตฌ์ฑ์ ์ํ ๋ค์ ํ ๋๋ ์ ํ ํ๋ ฌ์ O(Vยฒ) ๋ ๋ง์ ๊ณต๊ฐ์ ์ถ๊ฐํฉ๋๋ค.
FloydโWarshall์ ๊ตฌํ์ด ๊ฐ๊ฒฐํ๊ณ ์์ธก ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ ๋นํ ๋ฐ๋์ ๊ทธ๋ํ์ ์ข ์ข ๋งค๋ ฅ์ ์ ๋๋ค. ์์๊ฐ ์๋ ๊ฐ์ ์ด ์๋ ๋๊ท๋ชจ ํฌ์ ๊ทธ๋ํ์ ๊ฒฝ์ฐ ๊ฐ ์์ค์์ Dijkstra๋ฅผ ์คํํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ผ ์ ์์ต๋๋ค. ์ ํํ๊ธฐ ์ ์ ํญ์ ํ์ํ ์ถ๋ ฅ, ๊ทธ๋ํ ๋ฐ๋, ๊ฐ์ค์น ์ ์ฝ ์กฐ๊ฑด ๋ฐ ์ ์ ์๋ฅผ ๋น๊ตํ์ญ์์ค.
์ค์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ด๋ป๊ฒ ์ฌ๊ตฌ์ฑํฉ๋๊น?
๊ฑฐ๋ฆฌ๋ง์ผ๋ก๋ ์ ์ ์์๋ฅผ ์ ์ ์์ต๋๋ค. i์์ j๋ก์ ์ง์ ๊ฐ์ ์ด ์กด์ฌํ ๋ j๋ก ์ด๊ธฐํ๋ next[i][j] ํ๋ ฌ์ ์ ์งํฉ๋๋ค. k๋ฅผ ํตํ ๋ผ์ฐํ ์ด dist[i][j]์ ํฅ์์ํฌ ๋๋ง๋ค next[i][j]๋ฅผ next[i][k]๋ก ์ค์ ํ์ธ์. ๊ฒฝ๋ก๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ค๋ฉด ๋์์ ๋๋ฌํ ๋๊น์ง ํ์ฌ ์ ์ ์์ next[current][destination]๊น์ง ๋ฐ๋ณต์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
์ฌ๊ตฌ์ฑํ๊ธฐ ์ ์ ์ฐ๊ฒฐํ ์ ์๋ ์์ ํ์ธํ๊ณ ๋ถ์ ์ ์ธ ์ฃผ๊ธฐ ์ฌ๋ก๋ก๋ถํฐ ๋ณดํธํ์ธ์. ์์ด ์์ ์ฃผ๊ธฐ๋ก ์ด๋ํ ๋ค์ ๋ชฉ์ ์ง์ ๋๋ฌํ ์ ์๋ ๊ฒฝ์ฐ ์ฌ๊ตฌ์ฑํ ์ ์๋ ์ ํํ ์ต๋จ ๊ฒฝ๋ก๋ ์์ต๋๋ค.
FloydโWarshall์ ์ด๋ป๊ฒ ์์ ์ํ์ ๊ฐ์งํฉ๋๊น?
์๊ณ ๋ฆฌ์ฆ์ด ์๋ฃ๋ ํ ๋๊ฐ์ ์ ๊ฒ์ฌํฉ๋๋ค. dist[v][v] < 0 ๊ฐ์ v์์ ์์ ๊ฐ์ค์น ์ฌ์ดํด์ ๋๋ฌํ ์ ์๊ณ v๋ก ๋์๊ฐ ์ ์์์ ์ฆ๋ช ํฉ๋๋ค. ์ด๋ ๋จ์ํ ์์ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ์ฐพ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐ๋ ฅํฉ๋๋ค. ์๋ฒฝํ๊ฒ ์ ํจํ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ ๊ทธ๋ํ์๋ ์์ ๊ฐ์ฅ์๋ฆฌ๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.
๋ฉด์ ๊ด์ด ์ด๋ค ์์ด ์ํฅ์ ๋ฐ๋์ง ๋ฌป๋ ๊ฒฝ์ฐ i๊ฐ ์ ์ v์ ๋๋ฌํ ์ ์๊ณ v๊ฐ j์ ๋๋ฌํ ์ ์๋ ๋ชจ๋ i์ j๋ฅผ ์๋ณํฉ๋๋ค. ์ด๋ฌํ ์์ ์์ ์ํ์ ์์๋ก ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ ์ ์์ผ๋ฏ๋ก ์ต๋จ ๊ฒฝ๋ก ๊ฐ์ ์ ํํ์ง ์์ต๋๋ค.
์ธ์ ๋ค๋ฅธ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํฉ๋๊น?
๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์๋ ๋๋น ์ฐ์ ๊ฒ์์ ์ฌ์ฉํ๊ณ , ์์๊ฐ ์๋ ๊ฐ์ค์น๊ฐ ์๋ ๋จ์ผ ์์ค ๋ฌธ์ ์๋ Dijkstra๋ฅผ ์ฌ์ฉํ๊ณ , ์์ ๊ฐ์ค์น ๋๋ ๋๋ฌ ๊ฐ๋ฅํ ์์ฃผ๊ธฐ ๊ฐ์ง๊ฐ ์ค์ํ ๊ฒฝ์ฐ ๋จ์ผ ์์ค์๋ BellmanโFord๋ฅผ ์ฌ์ฉํฉ๋๋ค. FloydโWarshall์ ๋ชจ๋ ์ ๊ฑฐ๋ฆฌ๊ฐ ํ์ํ๊ณ ์ ๋ฐฉ ์๊ฐ์ด ํ์ฉ๋๋ ๊ฒฝ์ฐ ์ง์ ์ ํํฉ๋๋ค.
| ์๊ตฌ ์ฌํญ | ์ผ๋ฐ์ ์ธ ์ ํ |
|---|---|
| ๋น๊ฐ์ค ๋จ์ผ ์์ค | ๋๋น ์ฐ์ ๊ฒ์ |
| ์์๊ฐ ์๋ ๊ฐ์ค์น ๋จ์ผ ์์ค | ๋ฐ์ดํฌ์คํธ๋ผ |
| ์์ ๊ฐ์ค์น, ๋จ์ผ ์์ค | ๋ฒจ๋จผ-ํฌ๋ |
| ๋ชจ๋ ์, ๋ณดํต ๋๋ ์กฐ๋ฐํ ๊ทธ๋ํ | ํ๋ก์ด๋-์์ฌ |
์ด๋ค ๋ฉด์ ์ค์๋ฅผ ํผํด์ผ ํฉ๋๊น?
k๋ฅผ ๋ค๋ฅธ ๋ฃจํ ์์ ๋ฃ๊ฑฐ๋, ๋๊ฐ์ ์ 0์ ์์ด๋ฒ๋ฆฌ๊ฑฐ๋, ๊ฐ๋ ์์ด ๋ฌดํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ์์ ์์ง๋ฅผ ์์ ์ฌ์ดํด๊ณผ ํผ๋ํ๊ฑฐ๋, O(Vยฒ) ํ๋ ฌ ๊ณต๊ฐ์ด ๋ชจ๋ ํํ์์ ์๋์ผ๋ก ์ ๋ ฅ์ ํฌํจํ๋ค๊ณ ์ฃผ์ฅํ์ง ๋ง์ธ์. ๊ทธ๋ํ๊ฐ ๋ฐฉํฅ์ ํฅํ๊ณ ์๋์ง, ํํ ๋ชจ์๋ฆฌ๊ฐ ์กด์ฌํ๋์ง, ๋ฉด์ ๊ด์๊ฒ ๊ฑฐ๋ฆฌ, ๊ฒฝ๋ก ๋๋ ์ฃผ๊ธฐ์ ์ํฅ์ ๋ฐ๋ ์์ด ํ์ํ์ง ์ฌ๋ถ๋ฅผ ๋ช ํํ ํฉ๋๋ค.
์ฝ๋ฉ ์ธํฐ๋ทฐ ๋ณด์กฐ ์ํฌํ๋ก์ ์ฐ์ตํ๊ณ , BellmanโFord ์๊ณ ๋ฆฌ์ฆ์ ๋น๊ตํ๊ณ , Big O ๋ณต์ก์ฑ ์นํธ ์ํธ์ ๊ฒํ ํ์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
FAQ
Floyd-Warshall ์๊ณ ๋ฆฌ์ฆ์ ๋ฌด์์ ์ฌ์ฉ๋ฉ๋๊น?
FloydโWarshall์ ๊ฐ์ค์น ๊ทธ๋ํ์ ๋ชจ๋ ์ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์์ ๊ฐ์ ๊ฐ์ค์น๋ฅผ ์ง์ํ์ง๋ง ๋๋ฌ ๊ฐ๋ฅํ ์์ ๊ฐ์ค์น ์ฃผ๊ธฐ์ ์ํฅ์ ๋ฐ๋ ์์ ๋ํด์๋ ์ต๋จ ๊ฒฝ๋ก๊ฐ ์ ์ ์๋์ด ์์ง ์์ต๋๋ค.
ํ๋ก์ด๋-์์ ์ฌ๋ฐ์ด๋ ๋ฌด์์ ๋๊น?
๊ฐ ์ค๊ฐ ์ ์ k์ ๋ํด dist[i][j]๋ฅผ ํ์ฌ ๊ฐ๊ณผ dist[i][k] + dist[k][j]์ ์ต์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ๋ฃจํ๋ k์ฌ์ผ ํ๋ฏ๋ก ๋ชจ๋ ์ ๋ฐ์ดํธ๋ ํ์ฉ๋ ์ค๊ฐ ์ ์ ๋ง ์ฌ์ฉ๋ฉ๋๋ค.
์๊ฐ๊ณผ ๊ณต๊ฐ์ ๋ณต์ก์ฑ์ ๋ฌด์์ ๋๊น?
ํ์ค ์๊ณ ๋ฆฌ์ฆ์ O(Vยณ) ์๊ฐ์ ์คํ๋๋ฉฐ ๊ฑฐ๋ฆฌ ํ๋ ฌ์ O(Vยฒ) ๊ณต๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ๊ฒฝ๋ก ์ฌ๊ตฌ์ฑ์ ๋ ๋ค๋ฅธ O(Vยฒ) ํ๋ ฌ์ ์ถ๊ฐํ์ง๋ง ์ ๊ทผ์ ์๊ฐ ์ ํ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
FloydโWarshall์ด ์์ ์ํ์ ๊ฐ์งํ ์ ์์ต๋๊น?
๊ทธ๋ ์ต๋๋ค. ๋ชจ๋ ์ค๊ฐ ๊ผญ์ง์ ์ ์ฒ๋ฆฌํ ํ dist[v][v]์ ์์ ๊ฐ์ v์์ ์์ ๊ฐ์ค์น ์ฃผ๊ธฐ์ ๋๋ฌํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์ฃผ๊ธฐ์ ์ํฅ์ ๋ฐ๋ ๋ชจ๋ ์์ค-๋์ ์์ ์๋ณํ๋ ค๋ฉด ์ถ๊ฐ์ ์ธ ๋๋ฌ ๊ฐ๋ฅ์ฑ ์ถ๋ก ์ด ํ์ํฉ๋๋ค.
Dijkstra ๋์ FloydโWarshall์ ์ธ์ ์ฌ์ฉํด์ผ ํฉ๋๊น?
๋ชจ๋ ์ ๊ฑฐ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ FloydโWarshall์ ์ฌ์ฉํ์ญ์์ค. ๊ทธ๋ํ์ ํฌ๊ธฐ๋ ์ ๋นํ๋ฉฐ ๊ฐ๋จํ ๋ฐ์ง ๊ทธ๋ํ ์๋ฃจ์ ์ด ํ์ฉ๋ฉ๋๋ค. ๋ฐ๋ณต๋๋ ๋ค์ต์คํธ๋ผ๋ ์ผ๋ฐ์ ์ผ๋ก ์์๊ฐ ์๋ ๊ฐ์ค์น๋ฅผ ๊ฐ๋ ํฐ ํฌ์ ๊ทธ๋ํ์ ๋ ์ข์ต๋๋ค.
๋ฃจํ๋ฟ๋ง ์๋๋ผ ๋ถ๋ณ์ฑ์ ์ฐ์ตํ์ธ์.
YesToTheOffer๋ ์ฝ๋ฉ ์ค๋ช ์ ๊ตฌ์ฑํ๊ณ , ์ด๋ฅผ ๊ฐ์ธ ์ค๋น ๋ ธํธ์ ๊ธฐ์ดํ๊ณ , ๊ทน๋จ์ ์ธ ์ฌ๋ก๋ฅผ ์กฐ์ฌํ๊ณ , ๋์ค์ ๊ฒํ ํ ์ ์๋๋ก ์ธํฐ๋ทฐ ๊ธฐ๋ก์ ๋ณด์กดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ฃจํ๋ฟ๋ง ์๋๋ผ ๋ถ๋ณ์ฑ์ ์ฐ์ตํ์ธ์.
๋ฐ๋ณต์ ์ฐ์ตํ๊ณ , k๊ฐ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ์ธ ์ด์ ๋ฅผ ์ค๋ช ํ๊ณ , ํ ์คํธ ๊ฒฝ๋ก ์ฌ๊ตฌ์ฑ๊ณผ ์์ ์ฃผ๊ธฐ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ค๋ช ํฉ๋๋ค.
YesToTheOffer รฌยยฌรฌยยฉรญยยด รซยณยดรชยธยฐ