[백준알고리즘] 알고리즘 연습 - 10816

krkorklo·2022년 3월 1일
0

백준알고리즘

목록 보기
8/27

10816 - 숫자 카드 2

https://www.acmicpc.net/problem/10816

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let count = input[0];
let numbers = [];

let s = input[1].split(" ").map((n) => Number(n));
let nums = input[3].split(" ").map((n) => Number(n));
let ans = new Array(nums.length).fill(0);
let s_dict = {}

s.forEach((str) => {
    s_dict[str] ? s_dict[str]++ : s_dict[str] = 1;
})
s = [...new Set(s)].sort((a, b) => a - b);

nums.forEach((n, idx) => {
    var left = 0;
    var right = s.length - 1;
    while(left <= right) {
        var mid = Math.floor((left + right) / 2);
        if (s[mid] == n) {
            ans[idx] = s_dict[n];
            break;
        }
        else if (s[mid] < n) left = mid + 1;
        else right = mid - 1;
    }
})

console.log(ans.join(" "))

얘도 filter로 풀려고했다가 실패했었닿

0개의 댓글