[파이썬/python] 백준 18126 - 너구리 구구

2025. 2. 1. 20:56·알고리즘
반응형

문제

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


문제 설명

  1. 너구리 구구는 총 N개의 방을 가지고 있다.
  2. 입구를 포함한 모든 방은 1부터 N까지 번호를 가지고 있다.
    1. 이 때 입구는 1번이다.
  3. 구구는 입구에서 가장 먼 방에 아이스크림을 숨기려고 한다.
  4. 구구가 집 입구에서 아이스크림을 숨기려고 하는 방까지 이동하는 거리를 구해라. 

 


BFS 혹은 DFS를 통해 가장 먼 방까지의 거리를 구하는 문제다.

이 때 문제에서 "모든 길은 서로 오고 갈 수 있다."라는 말이 있기 때문에 양방향 그래프로 구현했다.

풀이

  1. 입력받은 간선 정보를 통해 양방향 그래프를 생성한다.
  2. 1번 노드가 입구 즉 루트 노드이므로 1번 노드부터 탐색을 진행한다.
  3. 순차적으로 방을 이동하면서 최대 거리를 갱신한다.

코드

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

n = int(input())


graph = [[] for _ in range(n+1)]

queue = deque([])
visited = [0 for _ in range(n+1)]

def bfs():
    max_dist = -1
    while queue:
        v1, dist= queue.popleft()
        max_dist = max(dist, max_dist)
        for v2,cost in graph[v1]:
            if not visited[v2]:
                visited[v2] = 1
                queue.append((v2, dist+cost))
    return max_dist


for i in range(n-1):
    a,b,c = map(int,input().split())
    graph[a].append((b,c))
    graph[b].append((a,c))
queue.append((1,0))
visited[1] = 1
print(bfs())

시간복잡도

  • 인접 그래프 방식의 BFS 시간복잡도는 $O(V+E)$이다.
    • V : 정점의 개수
    • E : 간선의 개수
  • 노드(정점)의 최대 개수는 $5*10^3$, 간선의 최대 개수는 $5*10^3 - 1$
  • 따라서 최악의 경우 시간복잡도는 약 $O(10^4 -1)$이다.
반응형

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

[파이썬/python] 백준 19699 - 소-난다!  (0) 2025.02.03
[파이썬/python] 백준 6593 - 상범빌딩  (0) 2025.02.02
[파이썬/python] 백준 11725 - 트리의 부모 찾기  (0) 2025.01.31
[파이썬/python] 백준 29813- 최애의 팀원  (0) 2025.01.24
[파이썬/python] 백준 23757 - 아이들과 선물 상자  (0) 2025.01.24
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 19699 - 소-난다!
  • [파이썬/python] 백준 6593 - 상범빌딩
  • [파이썬/python] 백준 11725 - 트리의 부모 찾기
  • [파이썬/python] 백준 29813- 최애의 팀원
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (144)
      • 알고리즘 (124)
      • Java (2)
      • 자기개발 (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SMTP
    컴퓨터 구조
    컴퓨터구조
    python
    completablefuture
    작심삼일 챌린지
    인프런
    Redis
    springboot
    파이썬
    알고리즘
    백준
    java
    async
    OS
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 18126 - 너구리 구구
상단으로

티스토리툴바