<--- 리트코드 347. Top K Frequent Elements --->

# 문제: k번 이상 등장하는 요소를 추출하라.

 

입력

nums = [1,1,1,2,2,3], k = 2

출력

[1,2]

 

 

# 풀이

1. Counter를 이용한 음수 순 추출

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import collections
import heapq
 
def top_k_frequent(nums, k):
  freqs = collections.Counter(nums)
  freqs_heap = []
 
  for f in freqs:
    heapq.heappush(freqs_heap, (-freqs[f], f))
 
  topk = list()
 
  for _ in range(k):
    topk.append(heapq.heappop(freqs_heap)[1])
 
  return topk
 
nums = [1,1,1,2,2,3]
= 2
print(top_k_frequent(nums, k))
cs

 

2. 파이썬 다운 방식

1
2
3
4
5
6
7
8
import collections
 
def top_k_frequent(nums, k):
  return list(zip(*collections.Counter(nums).most_common(k)))[0]
 
nums = [1,1,1,2,2,3]
= 2
print(top_k_frequent(nums, k))
cs