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))