defdijkstra(A, n, start): ''' A: 인접 행렬 n: 정점의 개수 start: 시작 정점 ''' D = A[start] # 최단 거리 V = [False] * n # 방문 여부 V[start] = True
for i inrange(n-1): # 시작 노드를 제외하면 n-1개의 정점을 선택할 것임 m = INF current = 0 for j inrange(len(D)): ifnot V[j] and D[j] < m: # 방문하지 않은 노드 중에 최소 정점 선택 m = D[j] current = j V[current] = True for j inrange(n): ifnot V[j] and D[current] + A[current][j] < D[j]: # 기존 비용보다 저렴할 때 교체 D[j] = D[current] + A[current][j]