From a80f4a19d69f6fbe8c6b1b55075019c7d0c4fe5a Mon Sep 17 00:00:00 2001 From: heerucan Date: Sun, 13 Mar 2022 19:15:02 +0900 Subject: [PATCH] =?UTF-8?q?[Chore]=20=EC=BD=94=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...65\354\212\244\355\212\270\353\235\274.py" | 4 +-- ...64\353\223\234\354\233\214\354\205\234.py" | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git "a/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" "b/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" index 88f64b8..14e6407 100644 --- "a/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" +++ "b/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" @@ -36,7 +36,7 @@ def dijkstra(start): continue # 현재 노드와 연결된 다른 인접한 노드들을 확인 for i in graph[now]: - cost = dist + [1] + cost = dist + i[1] # 현재 노드를 거쳐서, 다른 노드로 이동하는 거리가 더 짧은 경우 if cost < distance[i[0]]: distance[i[0]] = cost @@ -47,7 +47,7 @@ def dijkstra(start): # 모든 노드로 가기 위한 최단 거리를 출력 for i in range(1, n+1): # 도달할 수 없는 경우, 무한이라고 출력 - if distance[i] == INF + if distance[i] == INF: print("무한") else: print(distance[i]) diff --git "a/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234\354\233\214\354\205\234.py" "b/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234\354\233\214\354\205\234.py" index e69de29..9075f84 100644 --- "a/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234\354\233\214\354\205\234.py" +++ "b/CodingTest/CH9 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234\354\233\214\354\205\234.py" @@ -0,0 +1,36 @@ +INF = int(1e9) # 무한을 의미하는 10억 + +n = int(input()) +m = int(input()) + +# 2차원 리스트를 만들고, 모든 값을 무한으로 초기화 +graph = [[INF]*(n+1) for _ in range(n+1)] + +# 자기 자신 -> 자기 자신 가는 비용은 0으로 초기화 +for a in range(1, n+1): + for b in range(1, n+1): + if a == b: + graph[a][b] = 0 + +# 각 간선에 대한 정보를 입력받아, 그 값으로 초기화 +for _ in range(m): + # A -> B로 가는 비용은 C라고 설정 + a, b, c = map(int, input().split()) + graph[a][b] = c + +# 점화식에 따라 플로이드 워셜 알고리즘을 수행 +for k in range(1, n+1): + for a in range(1, n+1): + for b in range(1, n+1): + graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) + +# 수행된 결과를 출력 +for a in range(1, n+1): + for b in range(1, n+1): + # 도달할 수 없는 경우, 무한이라고 출력 + if graph[a][b] == INF: + print("무한", end = ' ') + else: + print(graph[a][b], end=' ') + + print() \ No newline at end of file