본문 바로가기
  • 살짝 구운 김 유나
Algorithm/Programmers

[Lv.3] 네트워크 - JavaScript

by yunae 2023. 2. 28.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/43162

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

코드

function solution(n, computers) {
  var network = 0;

  const visited = new Array(n).fill(false);

  function DFS(index) {
    visited[index] = true; // 방문 처리

    for (let i = 0; i < n; i++) {
      // 기준이 되는 인덱스와 연결되어 있고, 방문한 적이 없는 노드라면
      if (computers[index][i] === 1 && !visited[i]) {
        DFS(i); // 깊이우선
      }
    }
  }

  for (let i = 0; i < n; i++) {
    if (!visited[i]) {
      DFS(i);
      network++;
    }
  }

  return network;
}

 

 

💡 What I Learned

반드시 방문 처리를 해주어야 함!

 

 

 

 

댓글