문제 번호 : 7795 번
문제 바로가기 ☞ https://www.acmicpc.net/problem/7795
<<< 문제 내용 >>>
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\r\n');
const T = Number(input.shift());
const binary_search = (arr, data) => {
let low = 0;
let high = arr.length-1;
let result = -1;
while (low<=high){
let mid = Math.floor((low+high)/2);
if(arr[mid] < data){
result = mid;
low = mid+1;
}else{
high = mid-1;
}
}
return result;
}
for(let i=0; i<T; i++){
input.shift();
let A = input[0].split(' ').map(el => Number(el));
input.shift();
let B = input[0].split(' ').map(el => Number(el));
input.shift();
answer = 0;
B.sort((a, b) => a - b);
for(let i of A){
answer += (binary_search(B, i)+1);
}
console.log(answer);
}
* 이분탐색을 이용하여 풀었습니다.
앞으로 ES6 문법 중 Arrow function에 익숙해 보고자 자주 사용해 볼 예정입니다.
도움이 되셨다면 공감 부탁드립니다.