[백준] #1389번 Floyd Warshall Algorithm python

2022. 11. 22. 08:42

https://www.acmicpc.net/problem/1389

 

1389번: 케빈 베이컨의 6단계 법칙

첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻

www.acmicpc.net

 

 

 

Floyd Warshall Algorithm 을 이용하여 구현하였다.

 

import sys
INF = sys.maxsize

N, M = map(int, input().split())

s = [[INF] * N for i in range(N)]
for i in range(M):
    num1, num2 = map(int, input().split())
    s[num1 - 1][num2 - 1] = 1
    s[num2 - 1][num1 - 1] = 1

for k in range(N):
    for i in range(N):
        for j in range(N):
            s[i][j] = min(s[i][j], s[i][k]+s[k][j])

result = sys.maxsize
for i in range(N):
    sum = 0
    for j in range(N):
        sum += s[i][j]
    if result > sum:
        result = sum
        p = i
print(p + 1)

 

 

BELATED ARTICLES

more