Advertisement
saurav_kalsoor

Minimize Unique - JAVA

Jul 17th, 2022
994
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Author : Saurav Kalsoor
  2. // Minimize Unique Numbers - JAVA
  3.  
  4. import java.util.*;
  5.  
  6. public class Test {
  7.     static Scanner sc = new Scanner(System.in);
  8.     public static void main(String[] args) {
  9.         int n = sc.nextInt();
  10.         int k = sc.nextInt();
  11.  
  12.         ArrayList<Integer> arr = new ArrayList<>();
  13.         for(int i = 0;i < n; i++){
  14.             arr.add(sc.nextInt());
  15.         }
  16.        
  17.         System.out.println(minimizeUnique(arr, k));
  18.     }
  19.  
  20.     public static int minimizeUnique(ArrayList<Integer> arr, int k){
  21.         HashMap<Integer, Integer> count = new HashMap<>();
  22.  
  23.         for(int num : arr){
  24.             count.put(num, count.getOrDefault(num, 0) + 1);
  25.         }
  26.  
  27.         Set<MyPair> st = new TreeSet<>(new Comparator<MyPair>() {
  28.             @Override
  29.             public int compare(MyPair a, MyPair b) {
  30.                 if(a.second == b.second)
  31.                     return a.first - b.first;
  32.                 return a.second - b.second;
  33.             }
  34.         });
  35.  
  36.         for(Map.Entry<Integer, Integer> x : count.entrySet()){
  37.             st.add(new MyPair(x.getKey(), x.getValue()) );
  38.         }
  39.  
  40.         int res = st.size();
  41.    
  42.         for(MyPair x : st){
  43.             if(k >= x.second){
  44.                 res--;
  45.                 k -= x.second;
  46.             }else{
  47.                 break;
  48.             }
  49.         }
  50.  
  51.         return res;
  52.     }
  53.  
  54. }
  55.  
  56. class MyPair{
  57.     public int first, second;
  58.  
  59.     public MyPair(int first, int second){
  60.         this.first = first;
  61.         this.second = second;
  62.     }
  63. }
  64.  
  65.  
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement