diff --git "a/Programmers/Level3/43162_\353\204\244\355\212\270\354\233\214\355\201\254.js" "b/Programmers/Level3/43162_\353\204\244\355\212\270\354\233\214\355\201\254.js" new file mode 100644 index 0000000..210681d --- /dev/null +++ "b/Programmers/Level3/43162_\353\204\244\355\212\270\354\233\214\355\201\254.js" @@ -0,0 +1,37 @@ +/* +⭐️ 문제 정보 ⭐️ +문제 : 43162 - 네트워크 +레벨 : Level 3 +링크 : https://school.programmers.co.kr/learn/courses/30/lessons/43162 +*/ + +function solution(n, computers) { + let answer = 0; + const visited = new Uint8Array(n); + + function bfs(start) { + const queue = [start]; + let head = 0; + visited[start] = 1; + + while (head < queue.length) { + const cur = queue[head++]; + + for (let next = 0; next < n; next++) { + if (computers[cur][next] === 0) continue; + if (visited[next]) continue; + + visited[next] = 1; + queue.push(next); + } + } + } + + for (let start = 0; start < n; start++) { + // 이미 어떤 네트워크에 속해 있는 경우는 제외한다. + if (visited[start]) continue; + bfs(start); + answer++; // bfs 1번 = 네트워크 하나. + } + return answer; +} diff --git a/Programmers/README.md b/Programmers/README.md index fb90a10..4d8ca37 100644 --- a/Programmers/README.md +++ b/Programmers/README.md @@ -41,6 +41,7 @@ | 42840 | 모의고사 | [42840_모의고사.js](Level1/42840_모의고사.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42840) | | 42888 | 오픈채팅방 | [42888_오픈채팅방.js](Level2/42888_오픈채팅방.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42888) | | 42889 | 실패율 | [42889_실패율.js](Level1/42889_실패율.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/42889) | +| 43162 | 네트워크 | [43162_네트워크.js](Level3/43162_네트워크.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/43162) | | 49993 | 스킬트리 | [49993_스킬트리.js](Level2/49993_스킬트리.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/49993) | | 49994 | 방문 길이 | [49994_방문_길이.js](Level2/49994_방문_길이.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/49994) | | 60057 | 문자열 압축 | [60057_문자열_압축.js](Level2/60057_문자열_압축.js) | [🔗](https://school.programmers.co.kr/learn/courses/30/lessons/60057) |