관리 메뉴

Mini

프로그래머스 가장먼 노드 // 자바에서 인접리스트, bfs 하는법 본문

Java

프로그래머스 가장먼 노드 // 자바에서 인접리스트, bfs 하는법

Mini_96 2025. 3. 18. 17:13

https://school.programmers.co.kr/learn/courses/30/lessons/49189?language=java\

 

import java.util.*;

class Solution {
    static ArrayList<ArrayList<Integer>> adj = new ArrayList<>();
    static int[] vis = new int[20004];
    static int n;
    
    public int solution(int _n, int[][] edge) {
        n=_n;
        for(int i=0;i<20004;++i){
            adj.add(new ArrayList<>());
        }
        
        for(int i=0;i<edge.length;++i){
            int a = edge[i][0];
            int b = edge[i][1];
            a--;
            b--;
            adj.get(a).add(b);
            adj.get(b).add(a);
        }
        
        int answer = 0;
        
        Queue<Integer> q = new LinkedList<>();
        q.add(0);
        vis[0]=1;
        
        int mx=0;
        while(q.size()!=0){
            int cur = q.peek();
            q.poll();
            for(int nxt : adj.get(cur)){
                if(vis[nxt]>0) continue;
                q.add(nxt);
                vis[nxt] = vis[cur]+1;
                mx=Math.max(mx,vis[nxt]);
            }
        }
        
        for(int i=0;i<n;++i){
            if(mx==vis[i]) answer++;
        }
        
        return answer;
    }
}

'Java' 카테고리의 다른 글

Java sout 테스트하는 방법  (0) 2023.11.12
우테코 xml 적용방법  (0) 2023.11.11