알고리즘

[백준] 11403번 (python 파이썬)(플로이드 와샬)

changha. 2022. 7. 31. 22:38
n = int(input())

grp = [[0 for col in range(n)] for row in range(n)]

for i in range(n):
    for j, v in enumerate(map(int, input().split())):
        grp[i][j] = v
        
for k in range(n):
    for i in range(n):
        for j in range(n):
            if grp[i][k] and grp[k][j]:
                grp[i][j] = 1

for i in range(n):
    for j in range(n):
        print(grp[i][j], end=" ")
    print()

다른 블로그들을 참고했습니다 

이 문제는 '플로이드 와샬' 알고리즘을 사용합니다 

플로이드 와샬에 대해 잘 와닿는 표현이 모든 '거쳐가는 정점' 을 기준으로 알고리즘을 수행한다는 것입니다

 

개념에 대해 잘 알기만 하면 플로이드 와샬 알고리즘을 그대로 쓰는 것이므로

문제 푸는데에는 어렵지 않을 것입니다 

 

 

 

 

 

 

 

 

https://blog.naver.com/ndb796/221234427842

 

24. 플로이드 와샬(Floyd Warshall) 알고리즘

지난 시간에는 다익스트라(Dijkstra) 알고리즘에 대해 학습했습니다. 다익스트라 알고리즘은 하나의 정점...

blog.naver.com