Algorithm/Programmers
[Lv.3] 네트워크 - JavaScript
yunae
2023. 2. 28. 13:33
문제
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
반드시 방문 처리를 해주어야 함!