프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

import java.util.*;
class Solution {
    class Node{
        int node;
        int dist;
        public Node(int n, int d){
            node = n;
            dist = d;
            
        }
    }
    public int solution(int n, int[][] edge) {
        int answer = 0;
        
        List<List<Integer>> graph = new ArrayList<>();
        
        for(int i = 0; i < n+1; i++){
            graph.add(new ArrayList<>());
        }
        
        for(var k : edge){
            graph.get(k[0]).add(k[1]);
            graph.get(k[1]).add(k[0]);
        }
        
        Queue<Node> q = new LinkedList<>();
        boolean[] visited= new boolean[n+1];
        
        q.offer(new Node(1, 0));
        visited[1] = true;
        List<Integer> list = new ArrayList<>();
        while(!q.isEmpty()){
            Node cur = q.poll();
            
            for(int i = 0; i < graph.get(cur.node).size(); i++){
                int curNode = graph.get(cur.node).get(i);
                if(visited[curNode]) continue;
                visited[curNode] = true;
                
                q.offer(new Node(curNode, cur.dist+1));
                list.add(cur.dist+1);
            }
        }
        
        Collections.sort(list, Collections.reverseOrder());
        int max = list.get(0);
        for(var k : list){
            if(max != k) break;
            answer += 1;
        }
        return answer;
    }
}

'문제풀이 > 프로그래머스' 카테고리의 다른 글

정수 삼각형  (0) 2024.04.11
귤 고르기  (0) 2024.04.11
주차 요금 계산  (0) 2024.04.10
신고 결과 받기  (0) 2024.04.10
괄호 변환  (0) 2024.04.08

+ Recent posts