Algorithm/Problems

99클럽 코테 스터디 17일차 TIL + DFS

공부좀하시졍 2025. 4. 22. 23:41

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

# 18126 너구리 구구

import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**7)

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

visited = [False] * (n+1)
dist = [0] * (n+1)

for _ in range(n-1):
    a,b,c = map(int, input().split())
    graph[a].append([b,c])
    graph[b].append([a,c])

def dfs(v):
    visited[v] = True
    for i, d in graph[v]:
        if not visited[i]:
            dist[i] = d + dist[v]
            dfs(i)
    return

dfs(1)
print(max(dist))
  • 일반적인 dfs 에서 거리의 최댓값을 갱신해야 한다.
  • 문제에 필요한 리스트들을 잘 선언해야 한다.
  • dfs나 다익스트라 알고리즘을 사용해도 된다.