설명은 딱히 필요없을 것 같다.
다만
HashSet 생성자에 map.values 넣는 비용보다
순회하면서 바로 중복 찾아내서 리턴시키는 비용이 대부분의 경우 더 쌀듯
class Solution {
public boolean uniqueOccurrences(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
for (int n : arr) {
map.put(n, map.getOrDefault(n, 0) + 1);
}
Set<Integer> valueSet = new HashSet<>(map.values());
return map.keySet().size() == valueSet.size();
}
}