CodeKata(Javascript)#8

권영균·2021년 3월 21일
0

CodeKata

목록 보기
8/8

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 obj = {};
    let arr = [];
    
    nums.forEach(el => {
        if (obj[el]) {
            obj[el]++;
        } else {
            obj[el] = 1;
        }
    });
    
    for (let properyName in obj) {
        arr.push([properyName, obj[properyName]]);
    }
    
    return arr.sort((a, b) => (b[1] - a[1])).slice(0,k).map(el => Number(el[0]));
}
profile
공감을 중요시하고 프론트엔드에 강점을 가진 개발자 권영균입니다.

0개의 댓글

관련 채용 정보