728x90
https://www.acmicpc.net/problem/1967
1167번 문제와 입력만 다르지 풀이법은 동일하다.
https://oh2279.tistory.com/167 <-- 여기 참고하세요!!
import sys
from collections import deque
sys.setrecursionlimit(10**6)
input = sys.stdin.readline
def dfs(now,parent):
for next, weight in tree[now]:
if dist[next]==0 and next != parent:
dist[next] = dist[now]+weight
dfs(next,now)
if __name__ == "__main__":
n = int(input())
tree = [[] for _ in range(10001)]
dist = [0 for _ in range(10001)]
depth = 0
for _ in range(n-1):
s,e,c = map(int,input().split())
tree[s].append([e,c])
tree[e].append([s,c])
dfs(1,0)
point1 = max(range(1,n+1), key = lambda i : dist[i]) # 지름이 될 수 있는 한 점
dist = [0 for _ in range(10001)]
point2 = dfs(point1,0) # 지름을 완성하는 두번째 점
print(max(dist))
728x90
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/파이선] 24230번 트리 색칠하기 (0) | 2023.03.09 |
---|---|
[백준/파이썬] 1707번 이분 그래프 (0) | 2023.03.04 |
[백준/파이썬] 1991번 트리 순회 (0) | 2023.02.18 |
[백준/파이썬] 25307번 시루의 백화점 구경 (0) | 2023.02.16 |
[백준/파이썬] 1167번 트리의 지름 (0) | 2023.02.15 |