[Algorithm] 최단 거리 알고리즘 종류 총정리(다익스트라, 플로이드, 벨만포드) with Python
·
코딩테스트 준비/알고리즘 개념
다익스트라, 벨만포드, 플로이드 워셜은 모두 최단 거리를 구할 때 사용하는 알고리즘입니다.사실 공부한거 나중에 까먹으면 한눈에 보고 싶을 것 같아서 포스팅으로 정리한 건데잘못된 부분이 있다면 댓글로 따끔하게 일침 부탁드립니다. 감사합니다. ▶ 다익스트라 알고리즘 (백준 1753번 최단경로 문제에서 나온 예제입니다.) 다익스트라 알고리즘은 엣지값이 양수일때만 사용이 가능하고 시작점에서 다른 모든 노드까지의 최단 거리를 구합니다.최단 거리 리스트는 1차원 리스트로 출발 노드는 0, 나머지는 무한대로 초기화해주고,그래프는 인접 리스트 [[] for _ range(n)] 형태로 생겼습니다.visited = [False] * (n+1) # 방문 여부 리스트graph = [[] for _ in range(n+1)..
[백준] 1753번 최단경로 / 파이썬 python 다익스트라 알고리즘 구현
·
코딩테스트 준비/문제풀이
https://www.acmicpc.net/problem/1753 백준 1753번 최단경로 문제는 다익스트라 알고리즘을 사용했다. 참고로 다익스트라 알고리즘은 출발 노드에서 모든 노드 간의 최단 거리를 구하며 엣지는 양수이어야 한다. 문제  설명  다음은 1753번 문제에 대한 풀이 순서이다. 1) 최단 거리 리스트 D[N]은 1차원 리스트로 출발 노드는 0, 그 외는 모두 무한대로 초기화한다. 2) D[N]에서 현재 값이 가장 작은 노드를 골라서 연결된 다른 노드의 값을 없데이트 한다.최단 거리 업데이트는 min(현재 노드 최단 거리 값 + 가중치, 다음 노드 최단 거리 값) 으로 비교한다. 3) 방문 리스트 visited[]를 만들어서 재방문 하지 않고 모든 노드가 선택될 때까지 반복한다. 글만 보면..