코딩테스트/최단경로(다익스트라,플로이드워셜)

[플로이드워셜] (백준_1058) 친구 - 파이썬 (다시 풀 문제는 아님)

영최 2024. 9. 7. 13:55
728x90

두 사람이 친구이거나, A와 친구이고, B와 친구인 C가 존재해야 된다. => 바로 플로이드 워셜 점화식 떠올림
플로이드 워셜에서 주의할 점 a!=b여야함 명심 

N = int(input())
G = [list(input()) for _ in range(N)]
V = [[0]*N for _ in range(N)]

for k in range(N):
    for a in range(N):
        for b in range(N):
            if a == b:
                continue
            if G[a][b]=="Y" or (G[a][k]=="Y" and G[k][b]=="Y"):
                V[a][b]=1

answer = 0
for row in V:
    answer = max(sum(row),answer)

print(answer)
728x90