
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const [head, ...tail] = fs.readFileSync(path).toString().trim().split('\n');
for (let i = 0; i < Number(head); i++) {
let cnt = 0;
const sizeA = tail[1 + i * 3]
.split(' ')
.map((it) => Number(it))
.sort((a, b) => b - a);
const sizeB = tail[2 + i * 3]
.split(' ')
.map((it) => Number(it))
.sort((a, b) => b - a);
for (const target of sizeA) {
for (let j = 0; j < sizeB.length; j++) {
if (target > sizeB[j]) {
cnt += sizeB.length - j;
break;
}
}
}
console.log(cnt);
}
테스트 케이스가 여러개기 때문에 테스트케이스만큼 반복하면서 A와 B를 정렬된 배열 형태로 구해줬다.
그리고 A배열과 B배열을 중첩 순회하면서 A가 B를 먹을수 있는 경우의수를 체크해주면 된다.