-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path가장 먼 노드.py
35 lines (26 loc) · 898 Bytes
/
가장 먼 노드.py
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
31
32
33
34
35
from collections import defaultdict
def solution(n, edges):
answer = [0 for _ in range(n)]
global maxDistance
maxDistance = 0
connected = defaultdict(list) # i 입장에서 연결이 된 모음
visited = [False for _ in range(n)]
for edge in edges:
a, b = edge[0] - 1, edge[1] - 1
connected[a].append(b)
connected[b].append(a)
def bfs(k, visited):
queue = []
queue.append((0, 0))
global maxDistance
while queue:
q, l = queue.pop(0)
visited[q] = True
for c in connected[q]: # q와 연결된 애들
if visited[c] == False:
visited[c] = True
queue.append((c, l+1))
maxDistance = max(maxDistance, l+1)
answer[c] = l+1
bfs(0, visited)
return answer.count(maxDistance)