https://www.acmicpc.net/problem/1389
SOLUTION
플로이드 와샬로 해결할 수 있는 문제.
https://claude-u.tistory.com/334 의 문제와 해결법과 동일하다.
출력부분만 부분 수정해준다.
PYTHON CODE
#입력
N, M = map(int, input().split())
friend_map = [[N for _ in range(N)] for _ in range(N)]
for _ in range(M):
friend_A, friend_B = map(int, input().split())
friend_map[friend_A-1][friend_B-1] = 1
friend_map[friend_B-1][friend_A-1] = 1
#플로이드-워셜 알고리즘
for k in range(N): #경로 for문이 가장 상위 단계여야 누락되지 않는다
for i in range(N):
for j in range(N):
if i == j:
friend_map[i][j] = 0 #자기 자신과는 친구가 되지 못한다
else:
friend_map[i][j] = min(friend_map[i][j],
friend_map[i][k] + friend_map[k][j])
#출력
bacon = []
for row in friend_map:
bacon.append(sum(row))
print(bacon.index(min(bacon)) + 1)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#288 백준 파이썬 [2458] 키 순서 - 플로이드 와샬 (0) | 2019.12.15 |
---|---|
#287 백준 파이썬 [1238] 파티 - 플로이드 와샬 (0) | 2019.12.15 |
#285 백준 파이썬 [11403] 경로 찾기 - 플로이드 와샬 (0) | 2019.12.15 |
#284 백준 파이썬 [1956] 운동 - 플로이드 와샬 (0) | 2019.12.14 |
#283 백준 파이썬 [11404] 플로이드 - 플로이드 와샬 (0) | 2019.12.14 |