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

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

코드

import queue
def solution(n, edge):
    board=[[] for _ in range(n+1)]
    for x, y in edge:
        board[x].append(y)
        board[y].append(x)
    
    answer=[0]*(n+1)
    q=queue.Queue()
    q.put(1)
    while q.qsize():
        ck=q.get()
        for i in board[ck]:
            if answer[i]==0:
                answer[i]+=answer[ck]+1
                q.put(i)
    
    return answer[2:].count(max(answer[2:]))

그래프와 bfs로 풀었다.

1번 노드에서부터 갈 수 있는 모든 노드를 방문하고

그 다음 노드부터 방문하지 않은 노드를 방문하고 값을 부여한다.

그렇게 값이 가장 큰 노드를 구하고 갯수를 세면 된다.

Discussion and feedback