반응형
[광고 누르면 오늘의 행운 상승!!]
https://programmers.co.kr/learn/courses/30/lessons/43162?language=java
기본 DFS문제
나는 그래프로 구현하였다.
2차원 그래프로 서로의 정점을 이어주고
visit배열을 이용하여 서로 이어져있는지 확인하였다.
쉬움.
import java.util.*;
import java.io.*;
class Solution {
static ArrayList<ArrayList<Integer>> graph;
static boolean[] visit;
public int solution(int n, int[][] computers) {
int answer = 0;
visit = new boolean[n];
graph = new ArrayList<>();
for(int i = 0; i < n; i++){
graph.add(new ArrayList<>());
}
for(int i = 0; i< n; i++){
for(int j = 0; j< n; j++){
if(i == j) continue;
if(computers[i][j] == 1) graph.get(i).add(j);
}
}
for(int i = 0; i< n; i++){
if(!visit[i]){
dfs(i);
answer++;
}
}
return answer;
}
private static void dfs(int node){
for(Integer n : graph.get(node)){
if(!visit[n]){
visit[n] = true;
dfs(n);
}
}
}
}
반응형
'2. 알고리즘사이트 > 3. 프로그래머스' 카테고리의 다른 글
여행경로 [프로그래머스][DFS][String] (0) | 2020.06.05 |
---|---|
단어변환 [프로그래머스][String][DFS][Graph] (0) | 2020.06.05 |
타겟 넘버 [프로그래머스][DFS] (0) | 2020.06.05 |
H-Index [프로그래머스][배열] (0) | 2020.06.05 |
문자열을 정수로 바꾸기 [프로그래머스][String] (0) | 2020.06.05 |