Algorithm/boj

[파이썬] 1167 트리의 지름

takeU 2022. 5. 3. 14:31
반응형
n = int(input())
tree = [[] for _ in range(n + 1)]
visited = [0] * (n + 1)
m = [1, 0]

for _ in range(n):
    cur = list(map(int, input().split()))
    num, li = cur[0], cur[1:-1]
    for i in range(0, len(li), 2):
        tree[num].append([li[i], li[i + 1]])

def dfs(s, d):
    global m
    if d > m[1]:
        m = [s, d]
    visited[s] = 1
    for t in tree[s]:
        if visited[t[0]] == 0:
            dfs(t[0], t[1] + d)

dfs(1, 0)
visited = [0] * (n + 1)
dfs(m[0], 0)
print(m[1])

트리, dfs