출처 : https://leetcode.com/problems/top-k-frequent-elements/
방법 1)
우선순위 큐를 사용한 풀이
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
freq_table = collections.Counter(nums)
heap = []
for i in freq_table.keys() :
heappush(heap, (-freq_table[i], i))
ans = []
while k > 0 :
k -= 1
ans.append(heappop(heap)[1])
return ans
방법 2)
내가 푼 방법 : Counter 활용
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
hm = collections.defaultdict(int)
for i in nums :
hm[i] += 1
lst=[]
for k, v in collections.Counter(hm).most_common(k):
lst.append(k)
return lst
방법 3)
nLargest를 사용한 방법도 존재하지만 흔히 푸는 방식은 아니기에 패스.