Leetcode 347 - Top K frequent elements

이두현·2021년 12월 27일
0
post-custom-banner

Leetcode 347

K frequent elemtns

언어: python3

class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        freq = collections.Counter(nums) # O(n)
        output = sorted(freq.items(),key=lambda x:x[1],reverse=True) # O(nlogn)
        ret = output[:k]
        return list(zip(*ret))[0]

collections.Counter 각 element 빈도수 세어 dict 으로 반환
dictionary.items() 시 (key,value) 쌍 반환
value에 대해 정렬하고 싶을 경우 lambda x:x[1] // 람다함수 사용
내림차순으로 정렬 원하는 경우 reverse 옵션

zip 예시

a = [1,2,3,4,5]
b = [2,4,5,6,7]
zip(a,b) = [(1,2),...,(5,7)] 

unpacking 예시

fruits = ['lemon','apple','banana']
print(*fruits) = lemon apple banana
  • zip에서 unpacking(*) 먼저 해야 원하는 동작 가능
profile
0100101
post-custom-banner

0개의 댓글