프로그래머스 - DFS - 네트워크
2021. 3. 15. 14:59ㆍAlgorithm
programmers.co.kr/learn/courses/30/lessons/43162
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한번 실행될때마다 네트워크 하나가 추가된다
'Algorithm' 카테고리의 다른 글
프로그래머스 - 큐 - 다리를 지나는 트럭 (0) | 2021.03.16 |
---|---|
프로그래머스 - DFS - 단어 변환 (0) | 2021.03.15 |
프로그래머스 - DFS - 타겟 넘버 (0) | 2021.03.15 |
백준 - 1012 - 유기농 배추 (0) | 2021.03.15 |
프로그래머스 - 완전탐색 - 카펫 (0) | 2021.03.12 |