ps:problems:boj:1167
트리의 지름
ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 1167 |
문제명 | 트리의 지름 |
레벨 | 골드 3 |
분류 |
그래프, 트리 |
시간복잡도 | O(V) |
인풋사이즈 | V<=100,000 |
사용한 언어 | Python |
제출기록 | 74672KB / 660ms |
최고기록 | 560ms |
해결날짜 | 2021/01/14 |
- 트리의 지름 (1967번) 문제와 이름이 똑같다. 그리고 구해야 하는 것도 똑같다. 다만 이 문제는 그냥 트리, 1967번은 rooted tree라는 점만 다르다.
풀이
- 트리의 지름 참고.
코드
"""Solution code for "BOJ 1167. 트리의 지름".
- Problem link: https://www.acmicpc.net/problem/1167
- Solution link: http://www.teferi.net/ps/problems/boj/1167
"""
import operator
import sys
from teflib import tgraph
def main():
v = int(sys.stdin.readline())
graph = [{} for x in range(v)]
for _ in range(v):
inp = [int(x) for x in sys.stdin.readline().split()]
u = inp[0]
for v, dist in zip(inp[1::2], inp[2::2]):
graph[u - 1][v - 1] = dist
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/1167.txt · 마지막으로 수정됨: 2021/01/17 15:14 저자 teferi
토론