STUDY/Algorithm

[백준] 1967 트리의 지름 python

sinawi95 2021. 5. 9. 18:46
728x90

www.acmicpc.net/problem/1967

 

1967번: 트리의 지름

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

www.acmicpc.net

import sys; input = sys.stdin.readline
from collections import deque
def bfs(start):
    q = deque([start])
    visit = [-1] * (n + 1)
    visit[start[0]] = 0
    ret = (0, 0)
    while q:
        cur, dist = q.popleft()
        for adj, adj_w in link_list[cur]:
            if visit[adj] != -1: continue
            visit[adj] = visit[cur] + adj_w
            q.append((adj, visit[adj]))
            if ret[1] < visit[adj]:
                ret = (adj, visit[adj])

    return ret

n = int(input())
link_list = [list() for _ in range(n + 1)]
for i in range(n - 1):
    n1, n2, w = map(int, input().split())
    link_list[n1].append((n2, w))
    link_list[n2].append((n1, w))

ret = bfs((1, 0))
ans = bfs((ret[0],0))
print(ans[1])

 


www.acmicpc.net/problem/1167

 

1167번: 트리의 지름

트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지

www.acmicpc.net

얘랑 같은 문제다

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 2263 트리의 순회 python  (0) 2021.05.09
[백준] 1991 트리순회 python  (0) 2021.05.09
[백준] 1918 후위 표기식 python  (0) 2021.05.09
[백준] 1629 곱셈 python  (0) 2021.05.08
[백준] 1167 트리의 지름 python  (0) 2021.05.08