최단경로 3

[baekjoon] 백준 2206번 : 벽 부수고 이동하기 (by python 파이썬) bfs

https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 정답 code #벽부스고 이동하기 from collections import deque dx = [0,0,1,-1] dy = [1,-1,0,0] def bfs(x,y,z): queue = deque() queue.append((x,y,z)) while queue: a,b,c = queue.popleft() #끝에 도달한경우 결과값 반환 if a == n-1 and b ==..

[baekjoon] 백준 1865번 : 웜홀 (by python 파이썬) 벨만 포드(Bellman-Ford) 알고리즘

https://www.acmicpc.net/problem/1865 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 정답 code #웜홀 import sys input = sys.stdin.readline INF = int(1e9) def bellma_ford(start): visit = [INF]*(n+1) visit[start] = 0 #정점 개수만큼 반복 for i in range(n): for j in range(1,n+1): for next_node , time in roads[j]: #다..

[baekjoon] 백준 1753번 : 최단경로 (by python 파이썬) 다익스트라 dijkstra

https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 정답 code #최단경로 import heapq import sys input = sys.stdin.readline INF = int(1e9) def dijkstra(start): q = [] heapq.heappush(q,(0,start)) visit = [INF] * (v+1) visit[start] = 0 while q: dist , node = heap..