(Python, Java) 리트코드 - Top K Frequent Elements
[문제 링크]
Python 풀이
from collections import Counter
from typing import List
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
counter = Counter(nums)
answer = []
for key, _ in counter.most_common(k):
answer.append(key)
return answer
Java 풀이
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] topKFrequent(int[] nums, int k) {
Map<Integer, Integer> counter = new HashMap<>();
for (int num : nums) {
counter.put(num, counter.getOrDefault(num, 0) + 1);
}
return counter.entrySet().stream().sorted(Map.Entry.comparingByValue(Collections.reverseOrder()))
.map(Map.Entry::getKey)
.limit(k)
.mapToInt(Integer::intValue)
.toArray();
}
}
comparingByValue() 다음에 .reversed가 자동완성으로 나오는데 사용할 수 없고 인자로 reverseOrder를 줘야 한다.