[LeetCode] 347번 Top K Frequent Elements

Updated:

문제

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]

Example 2:

Input: nums = [1], k = 1
Output: [1]

조건

Constraints:

  • 1 <= nums.legth <= $10^5$
  • k is in the range [1, the number of unique elements in the array].
  • It is guaranteed that the answer is unique.

풀이과정

내 풀이

카운터를 활용하여 풀이하였다.

class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        ans = []
        cnt = collections.Counter(nums).most_common()
        
        for i in range(k):
            ans.append(cnt[i][0])
        return ans

파이썬다운 풀이

class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        return list(zip(*collections.Counter(nums).most_common(k)))[0]

Leave a comment