[C++] 백준 1167 - 트리의 지름


[C++] 백준 1167 - 트리의 지름

문제 이해 단계 https://www.acmicpc.net/problem/1167 입력으로 트리의 정점 개수 V와 간선의 정보가 주어진다. 트리의 간선에는 가중치가 존재한다. 임의의 두 정점 사이의 거리 중 가장 긴 것의 길이를 출력하는 문제 문제 접근 단계 문제 조건부터 살펴보면, 정점의 개수가 최대 100,000개다. 그렇다면 간선의 개수는 훨씬 더 많이 가능하다는 소리이다. 모든 정점을 일일이 하나씩 다 살펴보기에는 무리이다. 한 정점을 특정하여 찾는 방법밖에 없는 것 같다. 두 정점 사이의 길이가 가장 길어지려면? 트리에서 두 정점의 길이가 가장 길어지려면 어떻게 해야 할까? 당연히 한쪽 끝노드(리프 노드)에서 끝노드로 가는 것이 길이가 가장 길어질 것이다. 즉 우리가 우선적으로 찾아야 할 것은 ..


원문링크 : [C++] 백준 1167 - 트리의 지름