Algorithm
프로그래머스 - DFS - 네트워크
YoonBing9
2021. 3. 15. 14:59
programmers.co.kr/learn/courses/30/lessons/43162
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있
programmers.co.kr
public class 네트워크 {
public static void main(String[] args) {
네트워크 o = new 네트워크();
System.out.println(o.solution(3, new int[][]{{1, 1, 0}, {1, 1, 0}, {0, 0, 1}}));
}
private boolean[] isVisit;
private int[][] computers;
public int solution(int n, int[][] computers) {
int count = 0;
isVisit = new boolean[n];
this.computers = computers;
for(int i=0; i<n; i++) {
if(!isVisit[i]) {
dfs(i);
count++;
}
}
return count;
}
private void dfs(int node) {
//프로세스
isVisit[node] = true;
for(int i=0; i<computers[node].length; i++) {
if(!isVisit[i] && (computers[node][i] == 1)) {
dfs(i);
}
}
}
}
알고리즘
- 완전탐색, DFS
- DFS로 순회하며 완전탐색을 한다.
- DFS한번 실행될때마다 네트워크 하나가 추가된다