ABC081_C Not so Diverse
mapの降順ソート(Value)
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; public class MainC { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] a = new int[n]; for(int i = 0 ; i < n ; i++) a[i] = sc.nextInt(); Map<Integer, Integer> map = new HashMap<>(); for(int i = 0 ; i < n ; i++) { if(map.containsKey(a[i])) { map.put(a[i], map.get(a[i]) + 1); } else { map.put(a[i], 1); } } List<Entry<Integer, Integer>> entry = new ArrayList<>(map.entrySet()); Collections.sort(entry, new Comparator<Entry<Integer, Integer>>() { public int compare(Entry<Integer, Integer> obj1, Entry<Integer, Integer> obj2) { return obj2.getValue() - obj1.getValue(); } }); int ans = 0; for(int i = k ; i < entry.size() ; i++) { ans += entry.get(i).getValue(); } System.out.println(ans); } }