[백준알고리즘] 알고리즘 연습 - 11724

krkorklo·2022년 3월 1일
0

백준알고리즘

목록 보기
12/27

11724 - 연결 요소의 개수

https://www.acmicpc.net/problem/11724

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let n = Number(input[0].split(" ")[0]);
let numbers = [];
for(var i=1; i<input.length; i++) {
    if (input[i] != ''){
        numbers.push(input[i].split(" ").map((n) => Number(n)));
    }
}

let input_arr = Array.from(Array(n), () => Array(n).fill(0));
for(var i=0; i<numbers.length; i++) {
    input_arr[numbers[i][0] - 1][numbers[i][1] - 1] = 1;
    input_arr[numbers[i][1] - 1][numbers[i][0] - 1] = 1;
}

let visited = new Array(n).fill(false);
let ans = 0;

function dfs(num) {
    visited[num] = true;
    for(var k=0; k<n; k++) {
        if (!visited[k] && input_arr[num][k] == 1) {
            dfs(k);
        }
    }
}
for(var i=0; i<n; i++) {
    if (!visited[i]){
        ans++;
        dfs(i);
    }
}

console.log(ans)

아니... input[i] != '' 이 조건 안 붙여주니까 typeerror 났다.
거참

그래 내가 잘못했다.

0개의 댓글