백준 11724 연결 요소의 개수

bkboy·2022년 5월 31일
0

백준 초급

목록 보기
45/80

문제

입출력 예

풀이

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const [n, m] = input.shift().split(' ').map(Number);
const arr = input.map((el) => el.split(' ').map(Number));

const solution = (n, arr) => {
  let answer = 0;
  let visited = Array.from(Array(n + 1), () => 0);
  const graph = Array.from(Array(n + 1), () => []);
  for (let [a, b] of arr) {
    graph[a].push(b);
    graph[b].push(a);
  }
  const dfs = (node) => {
    visited[node] = 1;
    for (let next of graph[node]) {
      if (!visited[next]) {
        dfs(next);
      }
    }
  };

  for (let i = 1; i <= n; i++) {
    if (!visited[i]) {
      dfs(i);
      answer++;
    }
  }

  return answer;
};

console.log(solution(n, arr));
  • 프로그래머스 섬의 개수 문제와 동일한 문제이다.
profile
음악하는 개발자

0개의 댓글