주어진 문자열 배열 words
에서 빈도 수가 높은 순서대로 k만큼 출력하는 문제이다.
만약 빈도 수가 같은 단어라면 사전 순서대로 출력한다.
class Solution:
def topKFrequent(self, words: List[str], k: int) -> List[str]:
words.sort()
words_counter = collections.Counter(words)
most_frequent_words = [word for word, _ in sorted(words_counter.items(), key = lambda x : (x[1]), reverse = True)]
return most_frequent_words[:k]
한 줄이라도 줄여보자면...
class Solution:
def topKFrequent(self, words: List[str], k: int) -> List[str]:
words_counter = collections.Counter(words)
most_frequent_words = [word for word, _ in sorted(words_counter.items(), key = lambda x : (-x[1], x[0]))]
return most_frequent_words[:k]
words
를 사전 순서대로 정렬한다.