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) {
// 여기에 코드를 작성해주세요.
let n = [...new Set(nums)];
let arr = [];
let newArr=[];
for(let i in n){
let numArr = [...nums.filter(item =>item === n[i] )];
arr.push(numArr);
}
arr.sort((a,b) => b.length-a.length);
for(let j=0; j<k; j++){
newArr.push(arr[j][0])
}
return newArr
}
예를 들어 nums=[1,2,2,2,3,3]이라고 가정해보자.
arr = [ [ 1 ], [ 2, 2, 2 ], [ 3, 3 ] ]
), k개수만큼 numArr각 요소의 길이가 긴 것을 반환해야 하므로, 내림차순으로 정렬을 시키기 위해 sort를 사용한다.length
를 비교해서 내림차순 해야 하므로 b.length - a.length
로 작성한다.[ [ 2, 2, 2 ], [ 3, 3 ], [ 1 ] ]