코딩테스트 준비 (알고리즘 & SQL)/알고리즘 이론

최단 거리 알고리즘 대표 3가지다익스트라 알고리즘(Dijkstra's Algorithm):한 노드로부터 다른 모든 노드까지의 최단 경로를 찾을 때 사용되며, 가중치가 양수인 경우 사용one(시작점) to many(도착점). 가중치 양수만 허용벨만-포드 알고리즘(Bellman-Ford Algorithm):다익스트라 알고리즘과 유사하지만, 가중치가 음수인 간선이 있을 경우에도 사용할 수 있음one(시작점) to many(도착점). 가중치 음수도 허용플로이드-워셜 알고리즘(Floyd-Warshall Algorithm):모든 노드 쌍 사이의 최단 경로를 찾는 데 사용many(시작점) to many(도착점). 가중치 음수도 허용 다익스트라 알고리즘(Dijkstra's Algorithm) 과정출발 노드 설정최단 거..
최소 신장 트리 (Minimum Spanning Tree, MST)주어진 가중치 그래프의 모든 정점을 최소한의 비용으로 연결하는 부분 그래프쉽게 말하면, 최소 비용으로 모든 지점이 서로 통행 가능하도록 연결한다.종류 : 크루스칼(Kruskal) 알고리즘, 프림(Prim) 알고리즘 등 크루스칼(Kruskal) 알고리즘 과정가장 작은 가중치를 가진 간선부터 선택선택될 간선 개수 = 총 정점 개수 - 1간선 선택 시 사이클이 생기지 않도록 한다. 사이클 형성 여부는 union-find 자료구조를 사용한다. 예제 코드 (python)더보기# 특정 원소가 속한 집합 찾기def find_parent(parent: list, x: int): # 루트 노드 찾을 때까지 재귀 호출 if parent[x] !=..
혼다
'코딩테스트 준비 (알고리즘 & SQL)/알고리즘 이론' 카테고리의 글 목록