티스토리 뷰

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

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

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

const K = input[1].split(' ').map(v=>+v);
const M = input[3].split(' ').map(v=>+v);

K.sort((a,b)=>a-b)
let N = [[K[0],1]];
for(let i = 1; i<K.length; i++){
  if(K[i-1]==K[i]){
    N[N.length-1][1]++;
  }else{
    N.push([K[i],1])
  }
}

let answer = [];
M.forEach(v=>{
  let left = 0;
  let right = N.length-1; 
  let find = false; 
    while(left<=right){
      let mid = Math.floor((right+left)/2);   
      if(N[mid][0]>v){
        right = mid-1; 
      }else if(N[mid][0]<v){
        left=mid+1;
      }else{
        find=true;  
        answer.push(N[mid][1])
        break; 
      }
    }
    if(!find)answer.push(0)
})

console.log(answer.join(' '))
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함