99클럽 코테 스터디 7일차 TIL - 노드 사이의 거리(백준 #1240)

2024. 11. 3. 13:51·99클럽 코테 스터디

❇️오늘의 학습 키워드 : 노드 사이의 거리(백준 #1240)

 

문제

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

입력

첫째 줄에 노드의 개수 N과 거리를 알고 싶은 노드 쌍의 개수 M이 입력되고 다음 N−1개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 M개의 노드 쌍이 한 줄에 한 쌍씩 입력된다.

출력

 M개의 줄에 차례대로 입력받은 두 노드 사이의 거리를 출력한다.

제한

  •  2≤N≤1000
  •  1≤M≤1000
  • 트리 상에 연결된 두 점과 거리는 10000이하인 자연수이다.
  • 트리 노드의 번호는 1부터 N까지 자연수이며, 두 노드가 같은 번호를 갖는 경우는 없다.

예제 입력 1 

4 2
2 1 2
4 3 2
1 4 3
1 2
3 2

예제 출력 1 

2
7

정답 코드

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 visited[nxt] == 0:
                visited[nxt] = 1
                q.append((nxt, total_dist + dist))

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

❇️오늘의 회고

  - 노드 사이의 관계(거리)를 묻는 문제이므로 바로 BFS를 떠올릴 수 있었다!

  - 무방향이므로 양쪽으로 연결하는 것도 잊지 말아야한다.

  - 내일 11시, 문제를 풀기 전에 위 개념을 한번 더 복습하고 내일 문제에 사용된 알고리즘에 대해서 공부할 것이다!🙂

저작자표시 (새창열림)

'99클럽 코테 스터디' 카테고리의 다른 글

99클럽 코테 스터디 9일차 TIL - 다단계 칫솔 판매(프로그래머스 #77486)  (2) 2024.11.05
99클럽 코테 스터디 8일차 TIL - 녹색 옷 입은 애가 젤다지?(백준 #4485)  (2) 2024.11.04
99클럽 코테 스터디 6일차 TIL + DFS 알고리즘  (0) 2024.11.02
99클럽 코테 스터디 3일차 TIL + 다익스트라 알고리즘  (0) 2024.10.30
99클럽 코테 스터디 2일차 TIL + BFS  (0) 2024.10.29
'99클럽 코테 스터디' 카테고리의 다른 글
  • 99클럽 코테 스터디 9일차 TIL - 다단계 칫솔 판매(프로그래머스 #77486)
  • 99클럽 코테 스터디 8일차 TIL - 녹색 옷 입은 애가 젤다지?(백준 #4485)
  • 99클럽 코테 스터디 6일차 TIL + DFS 알고리즘
  • 99클럽 코테 스터디 3일차 TIL + 다익스트라 알고리즘
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (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
버그잡는고양이발
99클럽 코테 스터디 7일차 TIL - 노드 사이의 거리(백준 #1240)
상단으로

티스토리툴바