[Algorithm] 최단 거리 알고리즘 종류 총정리(다익스트라, 플로이드, 벨만포드) with Python
·
코딩테스트 준비/알고리즘 개념
다익스트라, 벨만포드, 플로이드 워셜은 모두 최단 거리를 구할 때 사용하는 알고리즘입니다.사실 공부한거 나중에 까먹으면 한눈에 보고 싶을 것 같아서 포스팅으로 정리한 건데잘못된 부분이 있다면 댓글로 따끔하게 일침 부탁드립니다. 감사합니다. ▶ 다익스트라 알고리즘 (백준 1753번 최단경로 문제에서 나온 예제입니다.) 다익스트라 알고리즘은 엣지값이 양수일때만 사용이 가능하고 시작점에서 다른 모든 노드까지의 최단 거리를 구합니다.최단 거리 리스트는 1차원 리스트로 출발 노드는 0, 나머지는 무한대로 초기화해주고,그래프는 인접 리스트 [[] for _ range(n)] 형태로 생겼습니다.visited = [False] * (n+1) # 방문 여부 리스트graph = [[] for _ in range(n+1)..
[백준] 11657번 타임머신 | 벨만 포드 알고리즘 파이썬 Python
·
코딩테스트 준비/문제풀이
백준 11657번 타임머신 문제는 최단거리 알고리즘 중에서 벨만 포드를 써야 한다.문제에 버스 시간 C가 양수가 아닌 경우가 있기 때문에 다익스트라 알고리즘은 사용할 수 없다. 다익스트라는 가중치가 양수일 때만, 음수가 있는 경우는 벨만 포드를 쓴다. https://www.acmicpc.net/problem/11657 문제   설명 최단 거리 알고리즘(다익스트라, 벨만포드, 플로이드)의 총정리는 알고리즘 카테고리에서 다뤘으니여기선 문제에 대한 분석만 하겠다. 1. 최단 거리 리스트는 출발 노드만 0, 나머지는 무한대로 초기화한다.dist = [float('inf')] * (n+1)dist[1] = 0  2. 벨만 포드는 엣지가 중심이므로 엣지에 대한 그래프를 만든다.graph.append([start,e..