일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘
- minimum spanning tree
- Bellman-Ford
- 백트래킹
- 함밥
- SQL
- codetree
- BFS
- MyPlaylist
- DFS
- 프로그래머스
- Kruskal
- 종합설계
- 파이썬
- 모각코
- B대면노래방
- django
- 코드트리
- programmers
- 동적계획법
- 마라마라빔
- 그리디알고리즘
- 최소스패닝트리
- 장고
- 백준
- DP
- 소프트웨어공학
- 데이터베이스
- Planned
- 실습
Archives
- Today
- Total
Leta Learns
[Python] 백준 18126번 - 너구리 구구 본문
문제 https://www.acmicpc.net/problem/18126
일반적인 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))
'Coding > 백준' 카테고리의 다른 글
[Python] 백준 1922번 - 네트워크 연결 (0) | 2021.07.27 |
---|---|
[Python] 백준 1197번 - 최소 스패닝 트리 (0) | 2021.07.27 |
[Python] 백준 7576번 - 토마토 (0) | 2021.07.23 |
[Python] 백준 17220번 - 마약수사대 (0) | 2021.07.20 |
[Python] 백준 5014번 - 스타트링크 (1) | 2021.07.19 |
Comments