Thief of Wealth
Published 2020. 9. 29. 22:50
11404 플로이드 개발/알고리즘

www.acmicpc.net/problem/11404

 

11404번: 플로이드

첫째 줄에 도시의 개수 n(1 ≤ n ≤ 100)이 주어지고 둘째 줄에는 버스의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 �

www.acmicpc.net

 

 

아주아주아주 기초적인 플로이드 문제이다.

 

문제를 읽는순간 플로이드와샬 코드를 떠올릴 수 있어야 한다.

 

하지만 마자막에 "갈수없는 경로에는 0을 출력한다"를 보지 않았다면 98%에서 틀렸습니다를 볼 것이다.

 

이번 하반기 11번가 코딩테스트도 매우쉬웠으나 아주 사소한 예외처리 히든 테케때문에 많이들 털렸다고 한다 주의하자!

 

 

import sys
input = sys.stdin.readline

n = int(input().rstrip())
m = int(input().rstrip())
INF = int(1e9)
graph = [ [INF]*(n+1) for _ in range(n+1) ]
for _ in range(m):
    start, end, weight = map(int, input().rstrip().split(" "))
    graph[start][end] = min(weight,graph[start][end])

for k in range(1,n+1):
    for i in range(1,n+1):
        for j in range(1,n+1):
            graph[i][j] = min( graph[i][j], graph[i][k]+graph[k][j] )

for i in range(n+1):
    graph[i][i] = 0
    for j in range(n+1):
        if(graph[i][j] == INF):
            graph[i][j] = 0

for i in graph[1:]:
    print(" ".join(map(str,i[1:])))

 

'개발 > 알고리즘' 카테고리의 다른 글

10282 해킹  (0) 2020.10.02
2665 미로만들기  (0) 2020.09.30
1389 케빈 베이컨의 6단계 법칙  (0) 2020.09.29
11403 경로 찾기  (0) 2020.09.28
플로이드 워셜 알고리즘  (0) 2020.09.28
profile on loading

Loading...