본문 바로가기
Study/Coding Test

[백준] 1967 - 트리의 지름 Python

by 들숨날숨흡 2023. 8. 9.
728x90

https://www.acmicpc.net/problem/1967

 

1967번: 트리의 지름

파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연

www.acmicpc.net

import sys
from collections import defaultdict

input = sys.stdin.readline
sys.setrecursionlimit(10**9)
graph = defaultdict(list)

def bfs(node, dist):
    for next_node, next_dist in graph[node]:
        if visited[next_node] == -1:
            visited[next_node] = dist + next_dist
            bfs(next_node, dist + next_dist)

    return max(visited)

N = int(input())
for i in range(N - 1):
    u, w, v = map(int, input().rstrip().split(" "))
    graph[u].append((w, v))
    graph[w].append((u, v))

visited = [-1] * (N + 1)
visited[1] = 0
answer = bfs(1, 0)
A = visited.index(answer)

visited = [-1] * ( N + 1)
visited[A] = 0
answer = bfs(A, 0)

print(answer)

눈물나는 시도들...

728x90