새소식

Baekjoon

[BaekJoon] X 번 X 문제 - (nodejs)

  • -
728x90
문제 번호 :  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에 익숙해 보고자 자주 사용해 볼 예정입니다.

 

 

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.