취준/코딩테스트
백준 11405 (python): 경로 찾기
린구
2024. 2. 27. 16:08
반응형
import sys
input = sys.stdin.readline
INF = int(1e9) # 무한을 의미하는 10억 값 설정
n = int(input())
graph = []
for _ in range(n):
path = list(map(int, input().split()))
for j in range(len(path)): # 0 이라면 INF로 변경하여 넣어주기
if path[j] == 0:
path[j] = INF
graph.append(path)
for k in range(n):
for a in range(n):
for b in range(n):
graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b])
for a in graph:
for b in a:
if b != INF:
print(1, end=" ")
else:
print(0, end=" ")
print()
플로이드 워셜 알고리즘의 시간 복잡도는 O(N^3)...
파이썬은 초당 2000만번이 가능
따라서 노드의 개수가 300 이하일 때 사용 가능하다.
(다익스트라는 N^2이므로 5000개 이하일 때 사용 가능함)
반응형