https://www.acmicpc.net/problem/11403
1. 난이도 실버1 (🥈)
2. 문제 해결 방법
플로이드 워셜 알고리즘을 이용하면 된다.
출발 -> 경유지까지 이어져 있고(True), 경유지->도착까지 이어져있으면(True)
출발-> 도착이 이어져있기 때문에 graph[출발][도착]에 1을 넣어주면 된다.
3. 내가 작성한 코드
n = int(input()) #정점
graph = []
for _ in range(n):
graph.append(list(map(int, input().split())))
for k in range(n): #경유지
for i in range(n): #출발
for j in range(n): #도착
if graph[i][k] and graph[k][j]:
graph[i][j] = 1
for i in range(n):
for j in range(n):
print(graph[i][j], end=" ")
print()
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 1389 케빈 베이컨의 6단계 법칙(python) (0) | 2023.02.24 |
---|---|
[백준] 5972번 택배 배송(python) (0) | 2023.02.24 |
[백준] 11404번 플로이드(python) (0) | 2023.02.24 |
[백준] 1504번 특정한 최단 경로(python) (1) | 2023.02.24 |
[백준] 1916번 최소비용 구하기(python) (0) | 2023.02.24 |
댓글