λ°μν
Notice
Recent Posts
Recent Comments
Link
| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
Tags
- νλ‘κ·Έλλ¨Έμ€
- sort
- νμ΄μ¬
- μΈνΌ
- μλ£κ΅¬μ‘°
- μΉ΄μΉ΄μ€
- Python
- μκ³ λ¦¬μ¦
- μ½ν
- BFS
- Backjoon
- SSAFY
- μΌμ±
- DFS
- Blind
- boj
- μμ νμ
- μλ°μ€ν¬λ¦½νΈ
- μ€ν
- javascript
- κ·Έλν
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- SWμλν μ€νΈ
- μ½λ©ν μ€νΈ
- λ°±μ€
- SWEA
- DP
- νν
- kakao
- algorithm
Archives
- Today
- Total
λ§μν
λ€μ΅μ€νΈλΌ(dijkstra) λ³Έλ¬Έ
λ°μν

π λ€μ΅μ€νΈλΌ(dijkstra) λ
- λ€μ΅μ€νΈλΌλ₯Ό λ€μ΄κ°κΈ° μ μ... μ΅λ¨ κ²½λ‘λ
- κ°μ μ κ°μ€μΉκ° μλ κ·Έλνμμ λ μ μ μ¬μ΄μ κ²½λ‘λ€ μ€ κ°μ μ κ°μ€μΉμ ν©μ΄ μ΅μμΈ κ²½λ‘
- κ°μ μ κ°μ€μΉκ° κ· μΌ(1)ν κ²½μ° BFSλ₯Ό μ¬μ©
- μμ κ°μ€μΉλ₯Ό νμ©νμ§ μμ
- νλμ μμ μ μ μμ λ μ μ κΉμ§μ μ΅λ¨κ²½λ‘
- μμ μ μ μμ κ±°λ¦¬κ° μ΅μμΈ μ μ μ μ νν΄ λκ°λ©΄μ μ΅λ¨ κ²½λ‘λ₯Ό ꡬνλ λ°©μμ΄λ€.
- μμ μ μ (s) μμ λ μ μ (t) κΉμ§μ μ΅λ¨ κ²½λ‘μ μ μ x κ° μ‘΄μ¬νλ€.
- μ΄λ, μ΅λ¨ κ²½λ‘λ s μμ x κΉμ§μ μ΅λ¨κ²½λ‘μ x μμ t κΉμ§μ μ΅λ¨κ²½λ‘λ‘ κ΅¬μ±λλ€.
- νμ κΈ°λ²μ μ¬μ©ν μκ³ λ¦¬μ¦μΌλ‘ MSTμ νλ¦Ό μκ³ λ¦¬μ¦κ³Ό μ μ¬νλ€.
- μλ μ½λμ κ²½μ° μκ°λ³΅μ‘λλ O(N^2) μ΄λ€.
- λ§μ½ μ°μ μμνλ₯Ό μ΄μ©νκ² λλ€λ©΄ O(NlogN) μΌλ‘ μκ°λ³΅μ‘λλ₯Ό μ€μΌ μ μλ€.
π λ€μ΅μ€νΈλΌ(dijkstra) ꡬν
V, E = 6, 11
edges = [
[0, 1, 3],
[0, 2, 5],
[1, 2, 2],
[1, 3, 6],
[2, 1, 1],
[2, 3, 4],
[2, 4, 6],
[3, 4, 2],
[3, 5, 3],
[4, 0, 3],
[4, 5, 6]
]
# μΈμ 리μ€νΈ λ§λ€κΈ°
adj = {x: [] for x in range(V)}
for edge in edges:
s, e, c = edge
adj[s].append([e, c])
# dist, visited
dist = [float('inf')] * V
visited = [False] * V
# μμμ μ ν, λͺ¨λ μ μ μ ν
dist[0] = 0
cnt = 0
while cnt < V:
# distκ° μ΅μμΈ μ μ μ°ΎκΈ°
min_dist = float('inf')
u = -1
for i in range(V):
if not visited[i] and dist[i] < min_dist:
min_dist = dist[i]
u = i
# μ μ μ νλ μ ν
visited[u] = True
# κ°μ μν
for w, cost in adj[u]: # λμ°©μ μ , κ°μ€μΉ
if dist[u] + cost < dist[w]:
dist[w] = dist[u] + cost
cnt += 1
print(dist)
λ°μν
'CS > Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| νλ‘μ΄λ μμ¬(Floyd Warshall) (0) | 2020.10.04 |
|---|---|
| μλΌν μ€ν λ€μ€μ 체(Sieve Of Eratosthenes) (0) | 2020.10.03 |
| λ€μ΄λλ―Ήνλ‘κ·Έλλ°(Dynamic Programming) (0) | 2020.10.01 |
| ν¬λ£¨μ€μΉΌ μκ³ λ¦¬μ¦(kruskal) (0) | 2020.09.30 |
| μλ‘μ μ§ν©(Disjoint-set) (0) | 2020.09.29 |