코딩테스트 연습 > 그래프
가장 먼 노드
https://programmers.co.kr/learn/courses/30/lessons/49189
다익스트라 알고리즘을 사용하여 풀었다.
특이점은, cost가 없이 일정한 그래프이므로 boolean 2차원 배열로 그래프를 그렸다는 점이다.
import java.util.*;
class Solution {
public int solution(int N, int[][] edge) {
List<Integer> paths[] = new ArrayList[N+1];
boolean[] visit = new boolean[N+1];
boolean[][] path = new boolean[N+1][N+1];
for(int i = 0; i<=N; i++){
paths[i] = new ArrayList<>();
}
for(int[] e : edge){
path[e[0]][e[1]] = true;
path[e[1]][e[0]] = true;
}
Queue<Integer> que = new ArrayDeque<>();
que.add(1);
visit[1] = true;
int qSize = que.size();
while(!que.isEmpty()){
qSize = que.size();
for(int i = 0; i<qSize; i++){
int now = que.poll();
for(int j = 1; j<=N; j++){
if(!visit[j] && path[now][j]){
visit[j] = true;
que.add(j);
}
}
}
System.out.println(qSize);
}
return qSize;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 위장 (JAVA) (0) | 2021.08.08 |
---|---|
프로그래머스 거리두기 확인하기 (JAVA) (0) | 2021.08.08 |
프로그래머스 N으로 표현 (JAVA) (0) | 2021.08.01 |
프로그래머스 영어 끝말잇기 (JAVA) (0) | 2021.07.25 |
프로그래머스 스티커모으기 (2) (JAVA) (0) | 2021.07.12 |