[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 가장 먼 노드

2026. 3. 7. 20:16·알고리즘 & 자료구조/그래프

https://school.programmers.co.kr/learn/courses/30/lessons/49189

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

정답 코드

문제를 대충 읽어서 최단 거리로 이동했을 때 
가장 먼 노드들의 개수를 구하는 건데
가장 먼 노드의 거리를 구했었다가 틀리고 바로 수정

 

bfs로 1번 노드에서 각 노드에 도달하기까지 지나온 최소 개수를 count배열로 저장하고
가장 많이 지나온(가장 먼) 노드를 찾기 위해 max 로 최대를 계속 업데이트해주고
마지막에 count 배열에 max와 같은 가장 멀리 떨어져 있는 노드들의 개수를 세고 반환해 준다.

import java.util.*;

class Solution {
    public int solution(int n, int[][] edge) {
        ArrayList<Integer>[] graph = new ArrayList[n+1];
        for(int i=1; i<=n; i++) {
            graph[i] = new ArrayList<>();
        }
        for(int i=0; i<edge.length; i++){
            int u = edge[i][0];
            int v = edge[i][1];
            graph[u].add(v);
            graph[v].add(u);
        }
        Queue<int[]> q = new ArrayDeque<>();
        boolean[] visited = new boolean[n+1];
        int[] count = new int[n+1];
        count[1] = 1;
        q.add(new int[] {1, 1});
        int max = 0;
        visited[1] = true;
        while(!q.isEmpty()) {
            int[] curr = q.poll();
            int currX = curr[0];
            int currD = curr[1];
            for(int next : graph[currX]) {
                if(visited[next]) continue;
                
                int dist = currD + 1;
                count[next] = dist;
                max = Math.max(dist, max);
                q.add(new int[] {next, dist});
                visited[next] = true;
            }
        }
        int answer = 0;
        for(int i=1; i<=n; i++){
            if(count[i] == max) answer++;
        }
        return answer;
    }
}

'알고리즘 & 자료구조 > 그래프' 카테고리의 다른 글

[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 순위  (0) 2026.03.29
'알고리즘 & 자료구조/그래프' 카테고리의 다른 글
  • [프로그래머스 알고리즘 고득점 Kit][그래프][Java] 순위
수수다
수수다
우하하
  • 수수다
    그냥살자
    수수다
  • 전체
    오늘
    어제
    • 분류 전체보기 (20) N
      • 프로젝트 (1)
      • 알고리즘 & 자료구조 (17) N
        • 분리 집합 (1)
        • 정렬 (1)
        • 유클리드 호제법 (1)
        • 이분 탐색 (2) N
        • 해시 (5)
        • 그래프 (2)
        • 스택 (1)
        • 큐 (0)
        • 완전 탐색 (1)
        • DFS (0)
        • BFS (2)
        • 힙 (1)
      • 데이터베이스 (0)
      • CS (0)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 네이버 블로그
  • 공지사항

  • 인기 글

  • 태그

    바킹독
    코테
    DisjointSet
    비전공자
    Java
    유클리드호제법
    유니온파인드
    완전탐색
    union-find
    분리집합
    SSAFY
    그래프
    바이브코딩
    삼성청년SW·AI아카데미
    고가용성
    평균회귀
    백엔드
    해시
    매개변수탐색
    코딩테스트
    귀멸의칼날
    디스조인트셋
    알고리즘
    싸피
    프로그래머스 알고리즘 고득점 kit
    bfs
    이분탐색
    프로그래머스
    코팅테스트
    깊이/너비 우선 탐색(DFS/BFS)
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
수수다
[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 가장 먼 노드
상단으로

티스토리툴바