알고리즘/BFS|DFS
[프로그래머스 연습문제 level_3 ] 네트워크
happyhelen
2023. 11. 16. 17:16
처음 생각
무조건 dfs 다.
내가 푼 방법
class Solution {
static int[] visited;
static int N = 0;
static int[][] Computers;
public int solution(int n, int[][] computers) {
int answer = 0;
visited = new int[n];
Computers = computers;
N = n;
for(int i=0; i<visited.length; i++){
if(visited[i] == 0){
answer++;
dfs(i);
}
}
return answer;
}
static void dfs(int node){
visited[node] = 1;
for(int next=0; next<N; next++){
if(visited[next] == 0 && Computers[node][next] ==1){
dfs(next);
}
}
}
}
우선 재귀함수 호출로 풀었다. 스택으로도 풀어봐야지.