문제를 둘로 쪼개서 답이 나올 수 있는 범위만 탐색하는 것을 말한다.
DFS의 일종으로 Pruning 기법을 이용하여 해답이 될 수 없는 가지는 잘라내고 다른 가지를 탐색하는 알고리즘이다.
모든 정점으로 시작하여 모든 정점까지의 최단 거리를 찾기 위해서 사용한다.
모든 노드가 사이클 없이 연결시킬 때, 각 간선의 거리가 최소로 되게 하는 알고리즘이다.
하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알 수 있으며 음의 간선이 있는 경우에는 사용이 불가능하다.
이진 탐색을 이용하는 upper_bound와 lower_bound와