가장 자주 등장한 숫자를 k개수만큼 리턴

정은경·2019년 12월 19일
0
  • 문제
    nums는 숫자로 이루어진 배열입니다.
    가장 자주 등장한 숫자를 k 개수만큼 return해주세요.

nums = [1,1,1,2,2,3],
k = 2

return [1,2]

nums = [1]
k = 1

return [1]

function topK(nums, k) {
  tuple = [];
  tuple_count = [];
  rlt = []
  
  for(let i=0; i<nums.length; i++){
    if(tuple.indexOf(nums[i])<0){
      tuple.push(nums[i])
    }
  }
  
  for(let i=0; i<tuple.length; i++){
    target = tuple[i]
    count = 0
    for(let j=0; j<nums.length; j++){
      if(target==nums[j]){
        count +=1;
      }
    }
    tuple_count[i]=String(count)+":"+tuple[i];
  }
  //console.log(tuple_count)
  console.log(tuple_count.sort().reverse())
  for(let i=0; i<k;i++){
    rlt.push(Number(tuple_count[i].split(":")[1]))
  }
  console.log(rlt)
  return rlt;

}

topK( [1,1,2,2,2,2,3,3,3],2)
profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글