728x90
출처: https://school.programmers.co.kr/learn/courses/30/lessons/49189

소스코드
import java.util.*;
class Solution {
List<List<Integer>> graph;
int [] distance;
boolean [] visited;
public int solution(int n, int[][] edge) {
int cnt =0;
graph = new ArrayList<>(n+1);
distance = new int[n+1];
visited = new boolean[n+1];
for(int i = 0; i<=n;i++){
graph.add(new ArrayList<>());
}
for(int i = 0; i<edge.length; i++){
int start = edge[i][0];
int end = edge[i][1];
graph.get(start).add(end);
graph.get(end).add(start);
}
bfs(1);
Arrays.sort(distance);
int max = distance[distance.length-1];
for(int i =distance.length-1; i>=0;i--){
if(distance[i]==max)
cnt++;
else if(distance[i]<max) break;
}
return cnt;
}
void bfs(int start){
Queue<Integer> q = new LinkedList<>();
q.offer(start);
visited[start]= true;
while(!q.isEmpty()){
int curNode = q.poll();
for(int i =0; i<graph.get(curNode).size(); i++){
int node = graph.get(curNode).get(i);
if(!visited[node]){
visited[node]= true;
q.offer(node);
distance[node]= distance[curNode]+1;
}
}
}
}
}
느낀점 : IDE를 이용하지않고 프로그래머스 페이지에서 문제풀이를 진행하였다. 문제풀이가 어느정도 길어진다 싶으면 System.out.println 등 다양한 방법을 이용해서 check하면서 넘어가자.
- auto import를 사용하다 보니, 뭘 import 해야될 지 몰라서 오류가 있었다.
- 배열과 리스트를 사용하다보니 소괄호( ), 대괄호[ ]를 잘못입력하여 오류가 난 경우도 있었다.
- 로직은 틀린게 없어도, IDE를 사용하지않고, 테스트를 진행 했을 때 난감한 상황을 겪는다.
주기적으로 IDE없이 코딩테스트를 준비하는 습관을 가지자.
'알고리즘' 카테고리의 다른 글
| 프로그래머스 PCCP 2번문제 -java (0) | 2023.12.02 |
|---|---|
| 백준 알고리즘 2644 DFS & BFS -java (1) | 2023.12.02 |
| 백준 2583 영역구하기 (dfs & bfs) (0) | 2023.12.02 |
| 백준 알고리즘 2331 구현 (0) | 2023.12.02 |
| 백준 알고리즘 1260 dfs와 bfs (0) | 2023.12.02 |