설명
코드
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
32
33
34
35
36
37
38
39
40
41
42
43
|
inf = 100
dist = [
[0,3,2,inf, inf, 8],
[3,0,inf,inf, 9,1],
[2,inf,0,4,inf,5],
[inf,inf,4,0,3,inf],
[inf,9,inf,3,0,inf],
[8,1,5,inf,inf, 0]
]
n = 6
#prev = [[0]* n for _ in range(n) ]
def find_minidx(src,temp):
tmp = inf
idx = 0
for i in temp:
cur = dist[src][i]
if i!=src and cur<tmp:
tmp = cur
idx = i
return idx
def dijkstra(src,n):
temp = [i for i in range(n)]
temp.remove(src)
while temp:
idx = find_minidx(src, temp)
temp.remove(idx)
for neighbor in range(n):
if dist[idx][neighbor]==inf:
continue
alt = dist[src][idx]+dist[idx][neighbor]
if alt<dist[src][neighbor]:
dist[src][neighbor] = alt
#prev[src][neighbor] = idx
for i in range(n):
dijkstra(i,n)
for i in range(n):
print(dist[i])
|
cs |
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준]13549 숨바꼭질3 파이썬 python (0) | 2022.01.14 |
---|---|
[백준]14226번 이모티콘 파이썬 python (0) | 2022.01.14 |
[백준]13913 숨바꼭질4 파이썬 python (0) | 2022.01.13 |
[백준]1697번 숨바꼭질 파이썬 python (0) | 2022.01.13 |
[백준]7562번 나이트의 이동 파이썬 python (0) | 2022.01.13 |