알고리즘/baekjoon
[ baekjoon ] 트리의 지름 1967번 ( python )
Yanoo
2021. 5. 8. 18:15
728x90
반응형
문제
백준 1967 트리의 지름 풀이 ( 파이썬 )
1967번: 트리의 지름
파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연
www.acmicpc.net
풀이
한 노드를 정하고 가장 깊은 노드를 탐색한 후 그 노드에서 다시 가장 깊은 노드를 탐색했다.
import sys
sys.setrecursionlimit(10**9)
input=sys.stdin.readline
n=int(input())
result1=[0 for _ in range(n+1)]
result2=[0 for _ in range(n+1)]
tree=[[] for _ in range(n+1)]
def dfs(cur,result):
for i in range(len(tree[cur])):
end,dis=tree[cur][i]
if result[end] == 0:
result[end]=result[cur]+dis
dfs(end,result)
for _ in range(n-1):
a,b,c=map(int,input().split())
tree[a].append((b,c))
tree[b].append((a,c))
dfs(1,result1)
result1[1]=0
maxi=0
index=0
for i in range(len(result1)):
if maxi<result1[i]:
maxi=result1[i]
index=i
dfs(index,result2)
result2[index]=0
print(max(result2))
728x90
반응형