- Counter의 most_common함수를 통해 빈도의 내림차순으로 정렬함.
- 이를 map함수와 lambda식, sorted 함수를 사용하여 빈도순으로 정렬하되 동일한 빈도일 시 사전 순으로 정렬함.
- list slicing을 이용해 최빈값부터 k번째까지 return함.
from collections import Counter
class Solution:
def topKFrequent(self, words: List[str], k: int) -> List[str] :
return list(map(lambda x : x[0], sorted(Counter(words).most_common(), key = lambda x : (-x[1], x[0]))))[:k]