그래프 알고리즘 그래프에서 어떻게 쓰이는지
유니온 파인드(Union-Find) 그래프의 사이클이 생성되는지 판별하는 알고리즘
위상 정렬(Topological sort) 방향이 있고 사이클이 없는 노드와 에지를 갖는 그래프를 정렬하는 알고리즘
정렬 결과가 꼭 1개는 아님
ex) 수강신청, 게임 빌드 오더
다익스트라(Dijkstra) 시작점이 있고 다른 모든 노드로의 최단거리를 구하는 알고리즘
(음수간선은 있으면 안됨)
벨만-포드(Bellman-Ford) 시작점이 있고 다른 모든 노드로의 최단거리를 구하는 알고리즘
(음수간선도 가능)
음수 사이클이 있는지 체크하는 문제가 더 많이 나옴
플로이드-워셜(Floyd-Warchall) 시작점이 없고, 임의의 모든 노드 쌍의 최단거리를 구하는 알고리즘
(시간 복잡도가 안좋음)
최소 신장 트리(MST, Minimum Spanning Tree) 그래프에서 최소의 가중치 합으로 모든 노드를 연결할 수 있게 해주는 알고리즘
(사이클이 나올 수 없게끔 유니온 파인드를 이용함)

그래프의 표현

유니온 파인드(Union-Find)

위상 정렬(Topological sort)

다익스트라(Dijkstra)

벨만-포드(Bellman-Ford)

플로이드-워셜(Floyd-Warchall)

최소 신장 트리(MST, Minimum Spanning Tree)