코린이의 소소한 공부노트

[LeetCode/Easy] 1207. Unique Number of Occurrences 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1207. Unique Number of Occurrences

무지맘 2023. 4. 6. 14:27

1. Input

1) int[] arr

 

2. Output

1) arr의 요소에 대해 요소의 빈도 수를 파악한 뒤, 빈도 수에 중복이 없다면 true, 있다면 false를 반환

 

3. Constraint

1) 1 <= arr.length <= 1000

2) -1000 <= arr[i] <= 1000

 

4. Example

Input: arr = [1,2,2,1,1,3] -> Output: true

Input: arr= [1,2] -> Output: false

설명:

- 13, 22, 31번 나타났으므로 빈도 수를 보면 [3, 2, 1]이고, 중복이 없으므로 true를 반환

- 11, 21번이므로 빈도 수를 보면 [1,1]이고, 중복이 있으므로 false를 반환

 

5. Code

1) 첫 코드(2023/04/06)

HashMap<Integer,Integer> m = new HashMap<>();
for(int i : arr)
    m.put(i, m.getOrDefault(i,0)+1);
HashSet<Integer> s = new HashSet<>();
Iterator it = m.entrySet().iterator();
boolean answer = true;
while(it.hasNext()){
    int i = (int)((Map.Entry)it.next()).getValue();
    if(s.contains(i)){
        answer = false; break;
    } else
        s.add(i);
}
return answer;