본문 바로가기

리트코드/midium

[리트코드] 347. Top K Frequent Elements - js (해시)

반응형

1. 문제

https://leetcode.com/problems/top-k-frequent-elements/description/

 

Top K Frequent Elements - LeetCode

Can you solve this real interview question? Top K Frequent Elements - Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.   Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2]

leetcode.com

2. 코드

해시 맵의 value 별 정렬을 하고 싶을 땐 spread syntax를 통해 map을 배열 형태로 바꿔준 후 조건에 맞게 정렬하면 된다.

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
var topKFrequent = function(nums, k) {
    const answer = [];
    const map = new Map();

    for(let n of nums){
        map.set(n,(map.get(n) || 0) + 1);
    }

    const arr = [...map].sort((a,b) => b[1]-a[1]);
    
    for(let i=0;i<k;i++){
        answer.push(arr[i][0]);
    }
     
    return answer;
};
반응형