<--- 리트코드 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]
k = 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]
k = 2
print(top_k_frequent(nums, k))
|
cs |
'Python' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 33. 전화 번호 문자 조합 (0) | 2022.01.30 |
---|---|
파이썬 알고리즘 인터뷰 - 32. 섬의 개수 (0) | 2022.01.29 |
파이썬 알고리즘 인터뷰 - 30. 중복 문자 없는 가장 긴 부분 문자열 (0) | 2022.01.27 |
파이썬 알고리즘 인터뷰 -29. 보석과 돌 (0) | 2022.01.25 |
파이썬 알고리즘 인터뷰 - 27. k개 정렬 리스트 병합 (0) | 2022.01.25 |