[프로그래머스] 43162. 네트워크
문제 링크
풀이 과정
연결 요소의 개수를 구하는 문제입니다.
모든 방문하지 않은 정점을 기준으로 dfs 를 돌며, 연결 요소의 개수를 증가시킵니다.
코드
public class Main {
public static int solution(int n, int[][] computers) {
int answer = 0;
boolean[] visit = new boolean[n];
for (int i = 0; i < n; i++) {
if (!visit[i]) {
dfs(i, computers, visit);
answer++;
}
}
return answer;
}
public static void dfs(int idx, int[][] computers, boolean[] visit) {
visit[idx] = true;
for (int j = 0; j < computers[idx].length; j++) {
if (j != idx && !visit[j] && computers[idx][j] == 1) {
dfs(j, computers, visit);
}
}
}
public static void main(String[] args) {
int n = 3;
int[][] computers = {{1, 1, 0}, {1, 1, 0}, {0, 0, 1}};
// int[][] computers = {{1, 1, 0}, {1, 1, 1}, {0, 1, 1}};
solution(n, computers);
}
}
댓글남기기