입력: 하나의 트리
출력: 두 정점 (u,v)의 거리의 최댓값
Brute Force: O(n^2) ~ O(n^3)
BFS로 가능한 (u, v)의 모든 조합을 다 해본다.
가장 간선의 갯수가 많은 두 점이 정점이다.
시간복잡도: O(n^3)
*시간복잡도: O(n^2) (점 하나를 고정한 상태에서 BFS 할 경우)
O(n) 알고리즘
점 하나를 지정한 상태에서 BFS로 가장 먼 지점 u를 찾는다.
그 점에서 BFS로 가장 먼 지점 v를 찾는다.
*간선의 갯수가 가장 많은 경우가 n개라고 했을때, n개의 간선의 갖는 점이 여러개인 것이 아니라면 자명하다.
'자료구조 & 알고리즘' 카테고리의 다른 글
자료구조: 최소 신장 트리(MST, Minimum Spanning Tree, 최소 스패닝 트리) (0) | 2025.05.27 |
---|---|
자료구조: c++의 STL 모음 (0) | 2025.05.27 |
알고리즘: 카데인 알고리즘 (Kadane's algorithm) (0) | 2024.09.10 |
자료구조: Trie(자료구조) (1) | 2024.08.12 |
알고리즘: 에라스토테네스의 체 (0) | 2024.07.15 |