let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let count = Number(input[0]);
let pre = 1;
let total_cnt = [];
for(var c=0; c<count; c++) {
let [n, m, len] = input[pre++].split(" ").map((n) => Number(n));
let arr = Array.from(Array(m), () => Array(n).fill(0));
for(var i=0; i<len; i++) {
let [y, x] = input[pre++].split(" ").map((n) => Number(n));
arr[x][y] = 1;
}
let visited = Array.from(Array(m), () => Array(n).fill(false));
let queue = [];
let cnt = 0;
for(var i=0; i<m; i++) {
for(var j=0; j<n; j++) {
if(visited[i][j] || arr[i][j] == 0) continue;
queue.push([i, j])
while(queue.length != 0) {
let [x, y] = queue.shift();
if (visited[x][y]) continue;
visited[x][y] = true;
if (x != 0 && arr[x-1][y] == 1) {
queue.push([x-1, y]);
}
if (x != m - 1 && arr[x+1][y] == 1) {
queue.push([x+1, y]);
}
if (y != 0 && arr[x][y-1] == 1) {
queue.push([x, y-1]);
}
if (y != n - 1 && arr[x][y+1] == 1) {
queue.push([x, y+1]);
}
}
cnt++;
}
}
total_cnt.push(cnt);
}
total_cnt.forEach((c) => {
console.log(c)
})
첫번째 반복문이랑 그 안에있는 반복문 둘다 i로 썼다가 틀렸었다
껄껄
껄