#유형 : 그래프, 탐색
#난이도 : LV3
# BFS로 접근하여 풀었다. 입력받은 배열을 boolean 배열로 양방향으로 변환하였고, 1번에서 가장 먼 노드이니까 큐에 1을 넣고 연결확인하면서 반복문을 돌리면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import java.util.*;
class Solution {
public int solution(int n, int[][] edge) {
int dist[] = new int[n+1];
boolean visit[][] = new boolean[n+1][n+1];
for(int i=0; i<edge.length; i++){
visit[edge[i][0]][edge[i][1]] = true;
visit[edge[i][1]][edge[i][0]] = true;
}
Queue<Integer> queue = new LinkedList();
queue.add(1);
int max = 0;
while(!queue.isEmpty()){
int idx = queue.poll();
for(int j=2; j<=n; j++){
if(dist[j] == 0 && visit[idx][j]){
dist[j] = dist[idx] + 1;
queue.add(j);
}
}
}
for(int i=0; i<n+1; i++){
max = Math.max(max, dist[i]);
}
int cnt = 0;
for(int i=0; i<n+1; i++){
if(max == dist[i])
cnt++;
}
return cnt;
}
}
|
cs |
'프로그래머스' 카테고리의 다른 글
#프로그래머스_멀쩡한 사각형 - Java 자바 (0) | 2021.12.07 |
---|---|
#프로그래머스_섬 연결하기 - Java 자바 (0) | 2020.06.28 |
#프로그래머스_예산 - Java 자바 (0) | 2020.06.25 |
#프로그래머스_큰 수 만들기 - Java 자바 (0) | 2020.06.04 |
#프로그래머스_다리를 지나는 트럭 - Java 자바 (0) | 2020.06.04 |