본문 바로가기

플로이드와샬7

[백준] 1507번 - 궁금한 민호 (파이썬) # 궁금한 민호 N = int(input()) arr = [] for _ in range(N): arr.append(list(map(int, input().split()))) road = [[True]*N for _ in range(N)] # 플로이드 와샬 역으로 result = 0 for k in range(N): for i in range(N): if i != k: for j in range(N): if i != j and k != j: if arr[i][j] == arr[i][k]+arr[k][j]: road[i][j] = False elif arr[i][j] > arr[i][k]+arr[k][j]: result = -1 if not result: for i in range(N): for j in .. 2022. 5. 2.
[백준] 1719번 - 택배 (파이썬) # 택배 import sys input = sys.stdin.readline n, m = map(int, input().split()) arr = [[sys.maxsize] * (n+1) for _ in range(n+1)] for i in range(1, n+1): arr[i][i] = 0 for _ in range(m): x, y, cost = map(int, input().split()) arr[x][y] = cost arr[y][x] = cost result = [[j for j in range(n+1)] for i in range(n+1)] for i in range(1, n+1): result[i][i] = '-' for k in range(1, n+1): for i in range(1, n+.. 2022. 3. 31.
[백준] 14938번 - 서강그라운드 (파이썬) # 서강그라운드 import sys input = sys.stdin.readline N, m, r = map(int, input().split()) item = [0] + list(map(int, input().split())) arr = [[sys.maxsize for _ in range(N+1)] for _ in range(N+1)] for i in range(N+1): arr[i][i] = 0 for _ in range(r): a, b, dist = map(int, input().split()) arr[a][b] = dist arr[b][a] = dist for k in range(N+1): for i in range(N+1): for j in range(N+1): if arr[i][j] > arr.. 2022. 3. 24.
[백준] 1613번 - 역사 (파이썬) # 역사 import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [[False]*(N+1) for _ in range(N+1)] for a in range(1, N+1): for b in range(1, N + 1): if a == b: arr[a][b] = False for _ in range(M): a, b = map(int, input().split()) arr[a][b] = True for k in range(1, N+1): for i in range(1, N+1): for j in range(1, N+1): if arr[i][k] and arr[k][j]: arr[i][j] = True K = int(input().. 2022. 2. 19.
[백준] 10159번 - 저울 (파이썬) # 저울 import sys input = sys.stdin.readline N = int(input()) M = int(input()) arr = [[False]*(N+1) for _ in range(N+1)] for a in range(1, N+1): for b in range(1, N+1): if a == b: arr[a][b] = False for _ in range(M): a, b = map(int, input().split()) arr[a][b] = True for k in range(1, N+1): for i in range(1, N+1): for j in range(1, N+1): if arr[i][k] and arr[k][j]: arr[i][j] = True for i in range(1.. 2022. 2. 19.
[백준] 1956번 - 운동 (파이썬) # 운동 import sys input = sys.stdin.readline MAX = sys.maxsize V, E = map(int, input().split()) arr = [[MAX for _ in range(V+1)] for _ in range(V+1)] for _ in range(E): a, b, cost = map(int, input().split()) arr[a][b] = cost for k in range(1, V+1): for i in range(1, V+1): for j in range(1, V+1): if arr[i][j] > arr[i][k]+arr[k][j]: arr[i][j] = arr[i][k]+arr[k][j] result = MAX for i in range(1, V+1).. 2022. 2. 5.
[백준] 2458번 - 키 순서 (파이썬) # 키 순서 import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [[0]*(N+1) for _ in range(N+1)] for _ in range(M): a, b = map(int, input().split()) arr[a][b] = 1 for k in range(1, N+1): for i in range(1, N+1): for j in range(1, N+1): if arr[i][j] == 0: if arr[i][k] == 1 and arr[k][j] == 1: arr[i][j] = 1 result = 0 for i in range(1, N+1): sum = 0 for j in range(1, N+1): sum +=.. 2022. 2. 2.