728x90
https://www.acmicpc.net/problem/1967
저번 글에서 트리의 지름을 구했던 것과 같은 방식으로 구할 수 있다.
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
graph = [ [] for _ in range(n+1)]
for _ in range(n-1):
a,b,w = map(int,input().split())
graph[a].append((b,w))
graph[b].append((a,w))
def bfs(start):
q = deque([start])
visited = [-1] * (n + 1)
visited[start] = 0
result = [0, 0]
while q:
node = q.popleft()
for next,w in graph[node]:
if visited[next] == -1:
visited[next] = visited[node] + w
q.append(next)
if result[1] < visited[next]:
result[1] = visited[next]
result[0] = next
return result
node,weight = bfs(1)
node,weight = bfs(node)
print(weight)
728x90
'Python > 백준' 카테고리의 다른 글
2263_트리의 순회 (메모리초과 나온다면?) (0) | 2022.05.05 |
---|---|
1991_트리 순회 (0) | 2022.05.04 |
1167_트리의지름 (0) | 2022.05.02 |
11725_트리의 부모 찾기 (0) | 2022.05.01 |
11700_플로이드2 (0) | 2022.04.30 |