백준 1240. 노드사이의 거리

2024. 11. 3. 13:54·백준

https://www.acmicpc.net/problem/1240

from collections import deque
import sys
input = sys.stdin.readline

N, M = map(int,input().split())
arr = [[] for _ in range(N+1)]

for _ in range(N-1):
    a,b,dist = map(int,input().split())
    arr[a].append((b, dist))
    arr[b].append((a, dist)) # 무방향이므로 양쪽으로 연결

def bfs(start, end):
    q = deque([(start, 0)])
    visited = [0] * (N + 1)
    visited[start] = 1

    while q:
        node, total_dist = q.popleft()

        if node == end:
            return total_dist

        for nxt, dist in arr[node]:
            if not visited[nxt]:
                visited[nxt] = 1
                q.append((nxt, total_dist + dist))

for _ in range(M):
    a, b = map(int, input().split())
    ans = bfs(a,b)
    print(ans)

- 노드 사이의 관계(거리)를 구하는 문제이므로 BFS 사용!

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 1865. 웜홀  (0) 2024.11.03
백준 1197. 최소 스패닝 트리  (0) 2024.11.03
백준 1717. 집합의 표현  (0) 2024.11.03
백준 2458. 키 순서  (0) 2024.11.02
백준 2660. 회장뽑기  (0) 2024.10.30
'백준' 카테고리의 다른 글
  • 백준 1865. 웜홀
  • 백준 1197. 최소 스패닝 트리
  • 백준 1717. 집합의 표현
  • 백준 2458. 키 순서
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (382)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    개발자취업
    코딩테스트준비
    항해99
    99클럽
    Til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 1240. 노드사이의 거리
상단으로

티스토리툴바