LeetCode - The World's Leading Online Programming Learning Platform
from typing import List
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
freq_dict = {}
for n in nums:
if freq_dict.get(n) is None:
freq_dict[n] = 1
else:
freq_dict[n] += 1
sorted_dict = sorted(freq_dict.items(), key=lambda v: v[1], reverse=True)
return [pair[0] for pair in sorted_dict[:k]]
단순하게 개수를 적은 뒤 개수를 기준으로 정렬하여 k개 만큼 뽑았다.
from typing import List
from collections import Counter
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
counter = Counter(nums)
return [pair[0] for pair in counter.most_common(k)]
성능에는 큰 차이가 없으나 훨씬 간단하게 구할 수 있다.
파이썬 알고리즘 인터뷰 31번