Leta Learns

[Python] 백준 18126번 - 너구리 구구 본문

Coding/백준

[Python] 백준 18126번 - 너구리 구구

leta 2021. 7. 27. 16:35

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

 

18126번: 너구리 구구

텔레토비 동산에 사는 너구리 구구는 입구, 거실, 주방, 안방, 공부방, 운동실, 음악실, 음식 창고 등 N개의 방을 가지고 있다. 입구를 포함한 모든 방은 1부터 N까지의 번호가 있고, 입구는 1번이

www.acmicpc.net

 

일반적인 dfs 문제들과 비슷하다.

거리의 최댓값을 구해서 갱신해주기만 하면 되는 문제이다.

최댓값들을 리스트에 저장한 후 그 리스트에서의 최댓값을 출력하면 된다.

최댓값 저장할 때 뻘짓을 좀 했는데 2021.07.24 - [HUFS/HUFS 모각코 캠프] - [모각코] 210724 Today I Learned 여기에 그 내용을 자세히 적어놓았다.

 

import sys
sys.setrecursionlimit(10**6)

def dfs(v):
    visited[v] = 1
    for i in range(len(adjList[v])):
        w = adjList[v][i][0]
        if not visited[w]:
            dist[w] = adjList[v][i][1] + dist[v]
            dfs(w)

n = int(sys.stdin.readline())
visited = [0 for i in range(n+1)]
adjList = [[] for i in range(n+1)]
dist = [0 for i in range(n+1)]
for i in range(1, n):
    a, b, c = map(int, sys.stdin.readline().split())
    adjList[a].append([b, c])
    adjList[b].append([a, c])

dfs(1)
print(max(dist))

ㅋㅋㅋㅋ...

 

 

Comments