https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
dfs로 풀면 됩니다!
dfs함수 만들어서 dfs 재귀로 풀어도 되는데 파이썬에서 항상 push, pop으로 풀어서 이렇게 풀었습니다.
<코드>
const inputs = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const node = Number(inputs[0]);
const num = Number(inputs[1]);
const arr = [...new Array(node + 1)].map(() => []);
const visited = new Array(node + 1).fill(0);
for (let i = 2; i < num + 2; i++) {
const input = inputs[i].split(" ");
const [s, e] = input;
arr[s].push(e);
arr[e].push(s);
}
const q = [];
q.push(1);
visited[1] = 1;
ans = 0;
while (q.length !== 0) {
c = q.pop();
if (arr[c]) {
arr[c].forEach((v) => {
if (visited[v] === 0) {
visited[v] = 1;
ans++;
q.push(v);
}
});
}
}
console.log(ans);
'JavaScript' 카테고리의 다른 글
[백준 node.js] 15649번 N과 M(1) (JavaScript) (0) | 2022.09.25 |
---|---|
[프로그래머스 JavaScript] 올바른 괄호 (0) | 2022.09.13 |
[백준 JavaScript] 11726번 2×n 타일링 (0) | 2022.09.09 |
[백준 JavaScript] 9095번 1,2,3 더하기 (0) | 2022.09.09 |
[백준 JavaScript] 1929번 소수 구하기 (0) | 2022.09.07 |