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나 다익스트라 알고리즘을 사용해도 된다.
'Algorithm > Problems' 카테고리의 다른 글
99클럽 코테 스터디 19일차 TIL + DP (0) | 2025.04.24 |
---|---|
99클럽 코테 스터디 18일차 TIL + BFS (0) | 2025.04.23 |
99클럽 코테 스터디 16일차 TIL + 구현 (0) | 2025.04.22 |
99클럽 코테 스터디 15일차 TIL + DP (1) | 2025.04.18 |
99클럽 코테 스터디 14일차 TIL + DP (0) | 2025.04.17 |