처음 생각
무조건 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);
}
}
}
}
우선 재귀함수 호출로 풀었다. 스택으로도 풀어봐야지.
'알고리즘 > BFS|DFS' 카테고리의 다른 글
[Sofreer 문제풀이] Lv.3(순서대로 방문하기) feat. Java (0) | 2024.04.03 |
---|---|
[프로그래머스 연습문제 level_3 ] 단어 변환 (0) | 2023.12.07 |
[프로그래머스 연습문제 level_2 ] 게임 맵 최단거리 (1) | 2023.11.29 |
[알고리즘] DFS - 재귀호출, 스택(Stack) (0) | 2023.11.03 |
[Sofreer 문제풀이] Lv.2(장애물 인식 프로그램) feat. Java (1) | 2023.11.02 |