새소식

Programmers

[Programmers] 네트워크 문제 - (javascript)

  • -
728x90
문제 이름 :  네트워크

 

<<< 문제 내용 >>>

 

function solution(n, c) { var answer = 0; let dic = Array.from(Array(n), () => new Array(0)); for(let i=0; i<n; i++){ for(let j=i+1; j<n; j++){ if(c[i][j] === 1){ dic[i].push(j); dic[j].push(i); } } } let visited = new Array(n).fill(false); const bfs = (idx) => { let queue = [idx]; visited[idx] = true; while(queue.length){ idx = queue.shift(); while(dic[idx].length){ let temp = dic[idx].shift(); if(!visited[temp]){ queue.push(temp); visited[temp]=true; } } } } for(let i=0; i<n; i++){ if(!visited[i]){ bfs(i); answer++; } } return answer; }

 

1. graph에서 bfs를 사용한다.

2. 방문되지 않은 노드만 bfs를 실행한다.

3. 그때 갯수를 올려주면 끝

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.