프로그래머스 코딩테스트 연습/Level3
[프로그래머스][JAVA] 가장 먼 노드
긷뚜
2021. 5. 5. 12:34
728x90
programmers.co.kr/learn/courses/30/lessons/49189
코딩테스트 연습 - 가장 먼 노드
6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3
programmers.co.kr
전형적인 bfs 문제 같았다
import java.util.*;
class Solution {
public int solution(int n, int[][] edge) {
int answer = 0;
int maxValue = 0;
int[] nodeLength = new int[n+1];
boolean[][] adj = new boolean [n+1][n+1];
for(int i =0;i<edge.length;i++){
adj[edge[i][0]][edge[i][1]]=true;
adj[edge[i][1]][edge[i][0]]=true;
}
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
while(!queue.isEmpty()){
int temp = queue.poll();
for(int i =2;i<=n;i++){
if(adj[temp][i]&&nodeLength[i]==0){
nodeLength[i] = nodeLength[temp]+1;
queue.add(i);
}
}
}
for(int i =1;i<=n;i++){
//System.out.println(nodeLength[i]);
if(nodeLength[i]>maxValue){
maxValue = nodeLength[i];
}
}
for(int i =1;i<n+1;i++){
if(maxValue==nodeLength[i]){answer++;}
}
return answer;
}
}
728x90