새소식

반응형
코딩 테스트

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

  • -
728x90
반응형

문제

  • 1~n 번호가 적힌 n개의 노드가 있는 그래프가 있다. 
    • 2 <= N <= 20,000
    • 1 <= edge <= 50,000
  • 1번 노드에서 가장 멀리 떨어진 노드의 갯수 구하기 (최단경로 이동 시 간선 개수가 가장 많은 것)

 

풀이

  • 최장 거리 구하기 문제 -> BFS/DFS 로 깊이 확인하고, 최댓값 카운팅하기.

 

from collections import deque

def solution(n, edge):
    INF = 1e9

    distance = [INF] * (n+1)
    graph = [ [] for _ in range(n+1)]
    for a, b in edge :
        graph[a].append(b)
        graph[b].append(a)    
    
    q = deque([(1, 0)])  # 1번 노드에서 시작
    distance[0] = distance[1] = 0
    while q :
        now, dist = q.popleft()
        
        for nxt in graph[now] :
            if distance[nxt] == INF : # 아직 방문하지 않은 노드인 경우
                distance[nxt] = dist+1
                q.append((nxt, dist+1))
    
    return distance.count(max(distance))

 

References

  • 프로그래머스 Lv3 가장 먼 노드
반응형

'코딩 테스트' 카테고리의 다른 글

[2019 KAKAO BLIND RECRUITMENT] 실패율  (0) 2023.07.21
[백준] 15666 N과 M (12)  (0) 2023.07.11
[프로그래머스] 기둥과 보  (0) 2023.06.30
[프로그래머스] 불량 사용자  (0) 2023.06.29
[프로그래머스] 보석 쇼핑  (0) 2023.06.28
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.