ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 1967 |
문제명 | 트리의 지름 |
레벨 | 골드 4 |
분류 |
그래프, 트리 |
시간복잡도 | O(n) |
인풋사이즈 | n<=10000 |
사용한 언어 | Python |
제출기록 | 36496KB / 164ms |
최고기록 | 80ms |
해결날짜 | 2021/01/14 |
"""Solution code for "BOJ 1967. 트리의 지름".
- Problem link: https://www.acmicpc.net/problem/1967
- Solution link: http://www.teferi.net/ps/problems/boj/1967
"""
import operator
import sys
from teflib import tgraph
def main():
n = int(sys.stdin.readline())
graph = [{} for x in range(n)]
for _ in range(n - 1):
u, v, w = [int(x) for x in sys.stdin.readline().split()]
graph[u - 1][v - 1] = graph[v - 1][u - 1] = w
farthest = max(enumerate(tgraph.min_distances_on_tree(graph, 0)),
key=operator.itemgetter(1))[0]
diameter = max(tgraph.min_distances_on_tree(graph, farthest))
print(diameter)
if __name__ == '__main__':
main()