배열 숫자의 갯수가 중복이 안 되면 true를, 중복이 되면 false를 반한하는 문제다. 특정한 알고리즘 없이 HashMap과 HashSet 자료구조를 이용해서 풀었다.
for(int i : arr){
if(map.containsKey(i)){
int tmp = map.get(i);
map.put(i, tmp+1);
}else{
map.put(i, 1);
}
}
for(int key : map.keySet()){
if(hashset.add(map.get(key))){
continue;
}else{
return false;
}
}
return true;
class Solution {
public boolean uniqueOccurrences(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
HashSet<Integer> hashset = new HashSet<>();
for(int i : arr){
if(map.containsKey(i)){
int tmp = map.get(i);
map.put(i, tmp+1);
}else{
map.put(i, 1);
}
}
for(int key : map.keySet()){
if(hashset.add(map.get(key))){
continue;
}else{
return false;
}
}
return true;
}
}