dev_eun

[프로그래머스] 가장 먼 노드 본문

공부/알고리즘 문제

[프로그래머스] 가장 먼 노드

_eun 2020. 12. 11. 04:48

programmers.co.kr/learn/courses/30/lessons/49189?language=python3

 

코딩테스트 연습 - 가장 먼 노드

6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3

programmers.co.kr

from collections import defaultdict, deque

def bfs(depth, node, graph, visited, distance):
  visited[node] = True
  queue = deque([node])
  distance[node] = 1

  while queue:
      v = queue.popleft()
      
      for i in graph[v]:
        if not visited[i]:
          visited[i] = True
          queue.append(i)
          distance[i] = distance[v]+1
  
  return distance
    

def solution(n, edge):
    graph = defaultdict(set)
    visited = [False]*(n+1)
    distance = [0]*(n+1)

    for a, b in edge:
      graph[a].add(b)
      graph[b].add(a)

    result = bfs(1, 1, graph, visited, distance) 
    
    return result.count(max(result))

solution(6, [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]])
728x90