😎풀이

  1. 빈도수 확인
  2. 빈도수를 기반으로 역순 정렬 (key: 수, value: 빈도)
  3. 정렬된 결괏값으로 가장 빈도가 높은 수(key) 반환
function topKFrequent(nums: number[], k: number): number[] {
    const frequent = {}
    let minFrequent = 0
    for(const num of nums) {
        if(!frequent[num]) frequent[num] = 0
        frequent[num]++
    }
    const frequentArr: Array<[string, number]> = Object.entries(frequent)
    frequentArr.sort((a, b) => b[1] - a[1])
    return frequentArr.slice(0, k).map(([key, value]) => Number(key))
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글