[백준][Python] 17073 나무 위의 빗물

[백준][Python] 17073 나무 위의 빗물

dfs로 통과시키긴 했는데 다른분들 답보니 그냥 w/리프노드의 수

이게 답이더라. 생각해보니 내 답도 결국 (총 물의 양)/(리프노드의 수) 이거였는데..

통과된게 신기할 따름..

import sys input = sys.stdin.readline sys.setrecursionlimit(10**6) def dfs(cur_node, water): visited[cur_node] = True n = len(tree[cur_node])-1 if not n: ans.append(water) return unit = water/n for next_node in tree[cur_node]: if not visited[next_node]: dfs(next_node,unit) N, W = map(int, input().split()) tree = {i: [] for i in range(1, N+1)} visited = {i: False for i in range(1, N+1)} ans = [] for _ in range(N-1): U, V = map(int, input().split()) tree[U] += [V] tree[V] += [U] visited[1] = True for next_node in tree[1]: dfs(next_node, W/len(tree[1])) print(sum(ans)/len(ans)) # 리프노드들에 고인 물의 평균. 노드수 50만.

from http://devlibrary00108.tistory.com/500 by ccl(A) rewrite - 2021-09-17 21:27:09