문제를 보고 직관적으로 크게 어렵지 않게 아이디어를 떠올릴수 있는 문제였습니다.
다음과 같이 여러 노드들의 연관관계중, 덩어리 별로 그 개수를 파악하는 문제입니다.
dfs방식을 통해 현재 노드와 연결된 모든 노드를 완전탐색을 통해서 구해내는 방식을 고안하게 되었습니다.
function solution(n, computers) {
var answer = 0;
let visited = new Array(n).fill(false)
const dfs = (curNode) => {
//특별한 종료조건이 없다
//다음 조건
for(let i=0; i< n; i++){
if(computers[curNode][i] === 1 && !visited[i]){
visited[i] = true;
dfs(i)
}
if(computers[i][curNode] === 1 && !visited[i]){
visited[i] = true;
dfs(i)
}
}
}
for(let i=0; i< n; i++){
if(!visited[i]){
visited[i] = true;
dfs(i)
answer++;
}
}
return answer;
}