문제풀이/BOJ
[Python] BOJ/백준 11403번 경로 찾기
서채리
2022. 8. 20. 15:06
[문제]
https://www.acmicpc.net/problem/11403
11403번: 경로 찾기
가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오.
www.acmicpc.net
[풀이]
그래프 최단 거리 문제
- 다익스트라
- 하나의 정점에서 출발했을 때 다른 모든 정점으로의 최단 경로를 구하는 알고리즘
- 플로이드 와샬
- 거쳐가는 정점을 하나씩 다 설정을 하여 해당 정점을 기준으로 최단 거리를 구하도록 구성
→ 모든 쌍 간의 최단 거리를 구할 수 있음 - 모든 정점에서 다른 모든 정점으로의 최단 경로를 구하는 알고리즘
- 거쳐가는 정점을 하나씩 다 설정을 하여 해당 정점을 기준으로 최단 거리를 구하도록 구성
[코드]
import sys
N = int(sys.stdin.readline())
graph = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
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()