CodeKata 09

meow·2020년 9월 10일
0

Algorithm

목록 보기
9/23

문제

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개의 댓글