문제
nums는 숫자로 이루어진 배열입니다. 가장 자주 등장한 숫자를 k 개수만큼 return해주세요.
nums = [1,1,1,2,2,3],
k = 2
return [1,2]
nums = [1]
k = 1
return [1]
풀이
function solution(nums, k) {
const map = new Map();
for(let i = 0; i < nums.length; i++) {
const curr = nums[i];
if(map.has(curr)) {
map.set(curr, map.get(curr) + 1)
} else {
map.set(curr, 1)
}
}
const mapArr = [...map];
const sorted = mapArr.sort((a,b) => {
return b[1] - a[1];
})
let answer = [];
for(let i =0; i < k; i++) {
answer.push(sorted[i][0]);
}
return answer;
}
solution([1,1,1,2,2,3], 2)