본문 바로가기
알고리즘/트리

[백준][Python] 1240번 노드사이의 거리

by 임짠짠 2022. 9. 29.
반응형
 

1240번: 노드사이의 거리

N(2≤N≤1,000)개의 노드로 이루어진 트리가 주어지고 M(M≤1,000)개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력하라.

www.acmicpc.net

 

 

코드

import sys
from collections import defaultdict

def find(a,b):
	queue = []
	queue.append((a,0))
	visit[a] = True
	while queue:
		next,len = queue.pop()
		if next == b:
			return len
		for i,l in dic[next]:
			if visit[i]:
				continue
			visit[i] = True
			queue.append((i,l+len))

n,m = map(int,input().split())
dic = defaultdict(list)

for i in range(n-1):
	a,b,l = map(int,sys.stdin.readline().split())
	dic[a].append((b,l))
	dic[b].append((a,l))
for i in range(m):
	visit = [False]*(n+1)
	a,b = map(int,sys.stdin.readline().split())
	print(find(a,b))

 

반응형

'알고리즘 > 트리' 카테고리의 다른 글

[백준][Python] 1967번 트리의 지름  (0) 2022.10.11
[백준][Python] 14267번 회사 문화 1  (0) 2022.09.30
[백준][Python] 4803번 트리  (0) 2022.09.27
[백준][Python] 4256 트리  (0) 2022.03.11
[백준][Python] 9489번 사촌  (0) 2022.03.10

댓글