[백준] 2606_바이러스 (Javascript)

잭슨·2024년 3월 10일
0

알고리즘 문제 풀이

목록 보기
25/130
post-thumbnail

문제

BOJ2606_바이러스

코드

const filePath = process.platform === 'linux' ? '/dev/stdin' : './Javascript/input.txt';
const input = require('fs').readFileSync(filePath).toString().trim().split('\n');
const N = +input[0];
const M = +input[1];
const graph = Array.from({ length: N + 1 }, () => []);
const visited = Array(N + 1).fill(false);
const arr = input.slice(2).map((e) => e.split(' ').map(Number));
arr.forEach(([s, e]) => {
    graph[s].push(e);
    graph[e].push(s);
});
let answer = 0;

// BFS 수행
const queue = [1];
visited[1] = true;
let front = 0;
while (queue.length > front) {
    const v = queue[front++];
    for (let next of graph[v]) {
        if (!visited[next]) {
            visited[next] = true;
            queue.push(next);
            answer++;
        }
    }
}
console.log(answer);

풀이

BFS/DFS 를 사용하여 그래프에 방문하지 않은 노드를 모두 탐색하여 방문한 노드의 개수를 출력하면 되는 문제다.

profile
지속적인 성장

0개의 댓글