ps:problems:boj:1967
트리의 지름
ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 1967 |
문제명 | 트리의 지름 |
레벨 | 골드 4 |
분류 |
그래프, 트리 |
시간복잡도 | O(n) |
인풋사이즈 | n<=10000 |
사용한 언어 | Python |
제출기록 | 36496KB / 164ms |
최고기록 | 80ms |
해결날짜 | 2021/01/14 |
- 트리의 지름 (1167번) 문제와 제목도 같고, 구해야 하는 것도 똑같다. 하지만 1167번은 그냥 트리이고 이 문제느 rooted tree라는 점만 다르다.
풀이
코드
"""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()
- Dependency: teflib.tgraph.min_distances_on_tree
ps/problems/boj/1967.txt · 마지막으로 수정됨: 2021/01/17 15:15 저자 teferi
토론