https://school.programmers.co.kr/learn/courses/30/lessons/43162
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
주어진 입력으로 그래프를 만들고, bfs나 dfs를 사용해 네트워크의 갯수를 찾는 문제.
bfs를 이용해 풀었다.
코드
function solution(n, computers) {
var answer = 0;
var nodes = [];
for(var i = 0; i < n; i++){
var node = {
adj: [],
};
for(var j = 0; j < n; j++){
if(computers[i][j] === 1){
node.adj.push(j);
}
}
nodes.push(node);
}
var visited = [];
for(var i = 0; i < n; i++){
// bfs
if(visited.includes(i)) continue;
visited.push(i);
var queue = [i];
while(queue.length !== 0){
var current = queue.shift();
for(var j of nodes[current].adj){
if(!visited.includes(j)){
queue.push(j);
visited.push(j);
}
}
}
answer++;
}
return answer;
}
결과
후기
bfs를 통해 간단하게 풀 수 있는 문제였다.
visited.includes(i)에서 오타가 있었다. 오타 대괄호[]와 소괄호()에 주의하자.
'코딩연습' 카테고리의 다른 글
(javascript) 불량 사용자 (0) | 2025.04.22 |
---|---|
(javascript) 자동완성 (0) | 2025.04.16 |
(JavaScript) 숫자 변환하기 (0) | 2025.02.10 |
(Javascript) 뒤에 있는 큰 수 찾기 (0) | 2025.02.03 |
(JavaScript) 신고 결과 받기 (0) | 2024.12.27 |