Scribbling

[Java] 1481. Least Number of Unique Integers after K Removals 본문

Computer Science/Java

[Java] 1481. Least Number of Unique Integers after K Removals

focalpoint 2024. 2. 16. 21:06

https://leetcode.com/problems/least-number-of-unique-integers-after-k-removals/?envType=daily-question&envId=2024-02-16

class Solution {
    public int findLeastNumOfUniqueInts(int[] arr, int k) {
        Map<Integer, Integer> counter = new HashMap<>();
        for (int num : arr) {
            counter.merge(num, 1, Integer::sum);
        }
        List<List<Integer>> list = new ArrayList<>();
        for (Integer key : counter.keySet()) {
            Integer val = counter.get(key);
            List<Integer> tmp = new ArrayList<>();
            tmp.add(val);
            tmp.add(key);
            list.add(tmp);
        }
        List<List<Integer>> sorted = list.stream().sorted((l1, l2) -> {
            return l1.get(0) - l2.get(0);
        }).toList();
        int i = 0;
        int total = 0;
        while (i < sorted.size()) {
            total += sorted.get(i).get(0);
            if (total > k) break;
            i++;
        }
        return sorted.size() - i;
    }
}