์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์ด๋ฏธ์ง ์์
- Node.js
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋๋๊ทธ ์ด๋ฒคํธ
- ์ฝ๋ฉํ ์คํธ
- ๊ณผ์ ํ ์คํธ
- ์ด๋ถํ์
- js
- ์ฝ๋ ํฌ๋ฉง
- TypeScript
- ๋ฐฑ์ค
- ๋ฆฌ๋์ค ํดํท
- ์นด์นด์ค์ฑ์ฉ
- Redux toolkit
- DP
- router v6
- ์๊ณ ๋ฆฌ์ฆ
- ๋ธ๋ฃจํธํฌ์ค
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- custom hook
- icecandidate
- ์ฝํ
- ์๋ฐ์คํฌ๋ฆฝํธ
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- ๋์ ๊ณํ๋ฒ
- ์นด์นด์ค
- JavaScript
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- React
- Today
- Total
๐ฅ dev-ruby
[์๊ณ ๋ฆฌ์ฆ] ๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆ ๋ณธ๋ฌธ
Dijkstra
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์์์ ์ผ๋ก ๋ถํฐ ๋๋จธ์ง ์ ์ ๊น์ง ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๋ ์ฌ์ฉ๋๋ค.
๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์์ 1:N ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๋จ, ๊ฐ์ค์น๋ ์์(-) ๊ฐ์ ๊ฐ์ง์ง ์๋๋ค.
๊ตฌํ๋ฐฉ๋ฒ
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๊ฐ์ ์ ์ ์ ๋ํด์ ์ ์ s์์ ์ ์ v๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ d[v]์ ์ ์ฅํ๋ฉด์ ํ์ํ๋ค.
์๊ณ ๋ฆฌ์ฆ ์์ ์, d[s] = 0์ด๊ณ , s๊ฐ ์๋ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ์ ๋ํด์๋ d[v] = ํด๋น๊ฐ์ค์น ๋ก ์์ํ๋ค.
์๊ณ ๋ฆฌ์ฆ์ด ์ข ๋ฃ ์, d[v]๋ s์์ v๊น์ง์ ์ต๋จ ๊ฒฝ๋ก์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ํ๋ด๊ฒ ๋๋ค.
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ฃผ์ด์ง N๊ฐ์ ์ ์ ๊ทธ๋ํ์์ NxN 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๊ทธ ์์ ๊ฐ ์ ์ ์ฌ์ด์ ๊ฐ์ค์น๋ฅผ ์ ์ฅํ๋ค.
- ๋ชจ๋ ๋ ธ๋๋ฅผ ์ํํด ๊ฑฐ๋ฆฌ๊ฐ ์ ์ผ ์งง์ ๋ ธ๋๋ฅผ ์ฐพ์์ผํ๋ค. (์ฐ์ ์์ํ๋ฅผ ํ์ฉํ๋ฉด ์ด ๋น์ฉ์ ์ค์ผ ์ ์๋ค.)
10. ์ต์ข , distance[] ๋ฐฐ์ด์ด ์ถ๋ฐ ๋ ธ๋๋ก๋ถํฐ ๋ชจ๋ ๊ฐ ๋ ธ๋๊น์ง์ ์ต์ ๋น์ฉ์ด ๋๋ค.
์ค์ ์์
์์ ๊ฐ์ด ๊ทธ๋ํ๊ฐ ์ค๋น๋์ด์๋ค.
์ปดํจํฐ์์๋ ํด๋น ๊ทธ๋ํ๋ฅผ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฒ๋ฆฌํด์ผํ๋ค.
0 | 2 | 5 | 1 | Infinity | Infinity |
2 | 0 | 3 | 2 | Infinity | Infinity |
5 | 3 | 0 | 3 | 1 | 5 |
1 | 2 | 3 | 0 | 1 | Infinity |
Infinity | Infinity | 1 | 1 | 0 | 2 |
Infinity | Infinity | 5 | Infinity | 2 | 0 |
์ง์ ์ฐ๊ฒฐ๋ผ ์๋ ์ ์ ์ ํด๋น ๊ฐ์ค์น๋ก, ๊ฑฐ์ณ๊ฐ์ผํ๋ ๊ฒฝ์ฐ๋ Infinity๋ก ์ด๊ธฐํ ํ๋ค.
์ด ์ํ์์ 1๋ฒ ๋ ธ๋๋ฅผ ์ ํํ๋ค.
1๋ฒ ๋ ธ๋์์ ๊ฐ ๋ ธ๋๋ก ๊ฐ๋ ์ต์ ๋น์ฉ distance[]์ ๋ค์์ด ๋๋ค. ์ด ๋ฐฐ์ด์ ๊ฐฑ์ ํ์ฌ 1๋ฒ ๋ ธ๋๋ก ๋ถํฐ ๊ฐ ๋ ธ๋๋ณ๋ก ์ต์ ๋น์ฉ์ ์์๋ธ๋ค.
0 | 2 | 5 | 1 | Infinity | Infinity |
distance[0]์ ๋ฐฉ๋ฌธ์๋ฃ๋ ๋ ธ๋๊ฐ ๋๋ค.
๋ฐฉ๋ฌธ ์๋ฃ๋ ๋ ธ๋๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ฅ ์์ ๋น์ฉ์ ๊ฐ์ง๋ 4๋ฒ ๋ ธ๋๋ฅผ ์ ํํ๋ค.
4๋ฒ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ๊ฐ๋ ๋ ธ๋๋ค์ ๋น์ฉ์ ํ์ธํ์ฌ ์ต์ ๋น์ฉ ๋ฐฐ์ด( distance[] )์ ๊ฐฑ์ ํ๋ฉด ๋๋ค.
0 | 2 | 5 | 1 | 2 | Infinity |
1->4->3๋ฅผ ๊ฑฐ์ณ๊ฐ ๋ ์ต์ ๋น์ฉ์ด 1+3<5 ์ด๋ฏ๋ก 4๋ก ๊ฐฑ์ ํ๋ค.
1->4->5๋ฅผ ๊ฑฐ์ณ ๊ฐ๋ ์ต์ ๋น์ฉ์ด 2<Infinity ์ด๋ฏ๋ก 2๋ก ๊ฐฑ์ ํ๋ค.
2๋ฒ์ ๊ฒฝ์ฐ 4๋ฅผ ๊ฑฐ์ณ๊ฐ๋ ๊ฒ๋ณด๋ค ๋ค์ด๋ ํธ๋ก ๊ฐ๋ ๊ฒ์ด ๋ ๋น์ฉ์ด ์ ๊ธฐ ๋๋ฌธ์ ๊ฐฑ์ ํ์ง ์๋๋ค.
์ด์ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ค ์ค์์ ๋น์ฉ์ด ๊ฐ์ฅ ์์ 2๋ฒ ๋ ธ๋๊ฐ ์ ํ๋๋ค.
0 | 2 | 4 | 1 | 2 | Infinity |
2๋ฒ์ ๊ฑฐ์ณ 4๋ฒ ๋
ธ๋๋ก ๊ฐ ๊ฒฝ์ฐ ๋น์ฉ์ 4๋ก 1๋ณด๋ค ํฌ๋ฏ๋ก ๊ฐฑ์ ๋์ง ์๊ณ ,
3๋ฒ ๋
ธ๋๋ 2๋ฒ์ ๊ฑฐ์ณ๊ฐ๋ฉด 2+3๋ก 4๋ณด๋ค ํฌ๋ฏ๋ก ๊ฐฑ์ ๋ณํ๊ฐ ์๋ค.
์ด์ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ค ์ค์์ ๋น์ฉ์ด ๊ฐ์ฅ ์์ 5๋ฒ ๋ ธ๋๊ฐ ์ ํ๋๋ค.
0 | 2 | 4 | 1 | 2 | Infinity |
5๋ฒ์ ๊ฑฐ์ณ 3๋ฒ์ผ๋ก ๊ฐ ๊ฒฝ์ฐ, (5๋ฒ๊น์ง ๋น์ฉ 2 + 5๋ฒ์์ 3๋ฒ๊น์ง ๋น์ฉ 1)= 3 < 4 ์ด๊ณ ,
5๋ฒ์ ๊ฑฐ์ณ 6๋ฒ์ผ๋ก ๊ฐ ๊ฒฝ์ฐ, (5๋ฒ๊น์ง ๋น์ฉ 2 + 5๋ฒ์์ 6๋ฒ๊น์ง ๋น์ฉ 2)=4 < Infinity ์ด๋ฏ๋ก
๋ค์๊ณผ ๊ฐ์ด ๊ฐฑ์ ๋๋ค.
0 | 2 | 3 | 1 | 2 | 4 |
์ด์ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ค ์ค์์ ๋น์ฉ์ด ๊ฐ์ฅ ์์ 3๋ฒ ๋ ธ๋๊ฐ ์ ํ๋๋ค.
0 | 2 | 3 | 1 | 2 | 4 |
์ต์ ๋น์ฉ์ ๊ฐฑ์ ๋์ง ์๋๋ค.
๋ง์ง๋ง์ผ๋ก, 6๋ฒ ๋ ธ๋๊ฐ ์ ํ๋๋ค.
์ฌ๊ธฐ์๋ ๊ฐฑ์ ๋์ง ์๊ณ , ์ต์ข ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ค.
0 | 2 | 3 | 1 | 2 | 4 |
๋ค์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ณต๋ถํ๋ค.
https://m.blog.naver.com/ndb796/221234424646
23. ๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆ
๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ํ์ฉํ ๋ํ์ ์ธ ์ต๋จ ๊ฒฝ๋ก(Shortest Path) ํ...
blog.naver.com
ํ๋ก๊ทธ๋๋จธ์ค <๋ฐฐ๋ฌ> ๋ฌธ์ ํธ๋ ค๊ณ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ๋๋ฐ, ์ฌ์ฌ ๊ทธ๋ํ ๋ฌธ์ ๋ ํ ๋์ธ ๊ฑฐ ๊ฐ์์
ํ๋ก์ด๋ ์์ฌ, ๋ฒจ๋ง ํฌ๋ ๋ ๋ค์ ๊ณต๋ถํด์ผ๊ฒ ๋ค...
๋ค ๊น๋จน์๋ค .. ! ๊ทธ๋ํ ๋ ์ด๋ ค์ด ๊ฒ..
์ฐ์ ์์ ํ ์ฐธ๊ณ ํ๊ธฐ. ๋นํจ์จ์ ์ธ ๋ค์ต์คํธ๋ผ ๋ง๊ณ .
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(Dijkstra Algorithm)
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฐฑ์ค 1753๋ฒ
velog.io
https://www.apexcel.blog/algorithm/graph/shortest-path/dijkstra/
์ต๋จ ๊ฒฝ๋ก(Shortest Path) 1 - ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(Dijkstra's Algorithm)
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(Dijkstra’s Algorithm) ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ ์ค ๊ฐ์ฅ ์ ๋ช ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ ์ ์๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ Edsger Dijkstra๊ฐ ๊ณ ์ํ์ผ๋ฉฐ ์์ ์ ์ ์ ์ ์ธํ ๋ค๋ฅธ ๋ชจ๋ ์
www.apexcel.blog
'algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์ด์ง ํ์ (์ด๋ถ ํ์, Binary Search) (0) | 2022.01.26 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ๋์ ๊ณํ๋ฒ(Dynamic Programming, DP) ์ด๋? (0) | 2021.12.21 |