프로그래머스 Level 3 "네트워크"

sanha_OvO·2022년 4월 6일
0

Algorithm

목록 보기
83/84

문제

프로그래머스 '네트워크'


풀이

3단계 문제라고 쫄았지만, 기본적인 dfs문제였다....

모든 노드를 반복하며 네트워크 순회를 위한 함수 dfs를 실행한다.

dfs를 통해 방문한 노드들은 isVisited 배열을 통해 해당 노드에 방문했었는지를 저장하고, 해당 네트워크의 순회가 끝나면 answer에 1을 더해준다.

이 후 반복의 노드들 중 이미 방문되어있는 노드를 만나게 되면 이는 이미 어떠한 네트워크에 소속되어 있는 노드이므로 dfs를 실행하지 않고 계속해서 반복을 이


JS 코드

function solution(n, computers) {
  const isVisited = [];
  let answer = 0;

  const dfs = (index) => {
    isVisited[index] = true;
    for (let i = 0; i < n; i++) {
      if (computers[index][i] && !isVisited[i]) dfs(i)
    }
  };

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

  return answer
}
profile
Web Developer / Composer

0개의 댓글