네트워크 자바스크립트

HyosikPark·2020년 12월 11일
0

알고리즘

목록 보기
60/72
function solution(n, computers) {
    let answer = 0;
    
    let check = Array.from({length: computers.length},() => 0);
    
    function dfs(index) {
        check[index] = 1;
        
        for(let i = 0; i <computers[index].length; i++) {
            if(computers[index][i] == 1 && !check[i]) {
                dfs(i);
            }
        }
    }
    
    for (let i = 0; i < computers.length; i++) {
        if(!check[i]) {
            dfs(i)
            answer++;
        }
    }
    return answer;
}

각 컴퓨터의 check 상태를 모두 0으로 둔다.
체크한 컴퓨터가 아닐 시 네트워크 개수를 하나 추가 하고
그 컴퓨터의 체크상태를 1로 만든다.(dfs함수 실행)
컴퓨터 와 연결된 다른 컴퓨터를 찾기 위해 반복문을 돌리고
연결된 컴퓨터를 찾으면 그 컴퓨터의 check 상태를 1로 만들고 반복문을 돌려 연결된 다른 컴퓨터를 찾는 과정을 반복한다.(dfs함수 재귀)

0개의 댓글