예제의 그래프를 표현하면 아래 그림과 같고, 1번 노드에서 가장 멀리 떨어진 노드는 4,5,6번 노드입니다.
풀이
bfs를 이용해 방문한 노드의 visited를 전보다 1씩 증가시켜서 , 가장 큰값을 찾고, 그 개수를 리턴하면 된다.
정답 코드
from collections import deque
def bfs(start,visited,graph):
queue = deque()
queue.append(start)
visited[start] = 1
while queue:
now = queue.popleft()
for i in graph[now]:
if not visited[i]:
queue.append(i)
visited[i] = visited[now] +1
return visited
def solution(n, edge):
e = len(edge)
graph = [[] for _ in range(n+1)]
for i in range(e):
a,b = edge[i][0], edge[i][1]
graph[a].append(b)
graph[b].append(a)
visited = [False] * (n+1)
visited = bfs(1,visited,graph)
far = max(visited)
count = 0
for i in visited:
if i == far:
count+=1
return count