var uniqueOccurrences = function(arr) {
const hash = {}
for(num of arr) {
hash[num] = (hash[num] || 0) + 1
}
return Object.values(hash).sort((a,b) => a-b).every((e, i, arr) => e !== arr[i+1])
};
이 문제는 수로만 이루어진 배열이 주어질 때, 각 수의 출현 빈도가 유니크할 경우
true
, 아닐 경우false
를 리턴하는 함수를 작성하는 문제이다.
먼저 각 수의 출현 빈도를 기록하기 위해서 Hash Table을 작성한다.
그리고 이 Hash Table에서 수(key)별 출현 빈도(value)를 비교해서 같은 출현 빈도(value)가 있을 경우false
를 리턴하고 아니면true
를 리턴한다.
이 때, value만 추출하도록Object.values
를 이용한다.