본문 바로가기

최단거리15

[백준] 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.
[백준] 24042번 - 횡단보도 (파이썬) # 횡단보도 import heapq import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [[] for _ in range(N+1)] for i in range(M): a, b = map(int, input().split()) arr[a].append((i, b)) arr[b].append((i, a)) def dijkstra(): q = [] heapq.heappush(q, (0, 1)) visited = [sys.maxsize for _ in range(N+1)] visited[1] = 0 while q: time, node = heapq.heappop(q) if node == N: return time if visi.. 2022. 4. 16.
[백준] 22116번 - 창영이와 퇴근 (파이썬) # 창영이와 퇴근 import sys import heapq N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] visited = [[sys.maxsize for _ in range(N)]for _ in range(N)] def dijkstra(a, b): q = [] heapq.heappush(q, (0, a, b)) visited[a][b] = 0 while q: height, x, y = heapq.heappop(q) if visited[x][y] < height: continue for k in range(4): nx = x + dx[k] ny = .. 2022. 4. 12.
[백준] 9370번 - 미확인 도착지 (파이썬) # 미확인 도착지 import heapq import sys input = sys.stdin.readline def dijkstra(start, arr): q = [] heapq.heappush(q, (0, start)) visited = [sys.maxsize for _ in range(n+1)] visited[start] = 0 while q: dist, node = heapq.heappop(q) if visited[node] dist+ndist: visited[nnode] = dist+ndist heapq.heappush(q, (dist+ndist, nnode)) return v.. 2022. 4. 10.
[프로그래머스] Lv2 - 배달 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr import heapq import sys def solution(N, road, K): answer = 0 arr = [[]for _ in range(N+1)] for a, b, time in road: arr[a].append((time, b)) arr[b].append((time, a)) visited = [sys.maxsize] .. 2022. 4. 5.
[백준] 17396번 - 백도어 (파이썬) # 백도어 import heapq import sys input = sys.stdin.readline N, M = map(int, input().split()) cant_go = list(map(int, input().split())) cant_go[-1] = 0 arr = [[]for _ in range(N)] for _ in range(M): a, b, cost = map(int, input().split()) arr[a].append((cost, b)) arr[b].append((cost, a)) dist = [sys.maxsize] * N def dijkstra(): q = [] heapq.heappush(q, (0, 0)) dist[0] = 0 while q: cost, node = heapq... 2022. 4. 2.
[백준] 5972번 - 택배 배송 (파이썬) # 택배 배송 import heapq import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [[]for _ in range(N+1)] for _ in range(M): a, b, cost = map(int, input().split()) arr[a].append((cost, b)) arr[b].append((cost, a)) def dijkstra(): q = [] heapq.heappush(q, (0, 1)) total = [sys.maxsize] * (N+1) total[1] = 0 while q: cost, node = heapq.heappop(q) if node == N: return total[node] if t.. 2022. 4. 1.