๋ฌธ์
Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise.
Example 1:
Input: arr = [1,2,2,1,1,3]
Output: true
Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences.
Example 2:
Input: arr = [1,2]
Output: false
ํด๊ฒฐ๋ฐฉ๋ฒ
๋ฐฐ์ด์ ๊ฐ ์์๊ฐ ์ค๋ณต๋๋ ์๊ฐ ์ ๊ฒน์น๋ฉด true, ๊ฒน์น๋ฉด false๋ฅผ ๋ฐํํ๋ผ๋ ์ด์ผ๊ธฐ.
์ผ๋จ ์ค๋ณต์ ์์ค ๊ฐ ์์๋ง ๋ด์ ๋ฐฐ์ด์ ํ๋ ๋ง๋ค๊ณ ๊ทธ ์์๋ง ๋ฐ์ ๋ฐฐ์ด๊ณผ ์๋ ๋ฐฐ์ด๊ณผ ๋น๊ตํด์ ๊ฐ ์์์ ์นด์ดํฐ๋ฅผ ๊ตฌํ๋ฉด ๋์ง ์์๊น? ๋ผ๊ณ ์๊ฐํจ.
๊ทธ๋ฌ๊ณ ์ฝ๋๋ฅผ ์ ์ผ๋ฉด์ ๊ฐ ๊ตฌํด์ง ์นด์ดํธ๋ฅผ ๋ด์ ๋ฐฐ์ด์ด ํฌ๊ธฐ์ ๊ทธ ๋ฐฐ์ด์ ๋ค์ ์ค๋ณต์ ๊ฑฐ ํ์ ๋ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ฉด ๋๊ฒ ๋ค๋ผ๊ณ ์๊ฐํจ
์๋ฃจ์
var uniqueOccurrences = function(arr) {
const newArr = new Set(arr);
const temp = [...newArr].map((v) => arr.reduce((cnt, item) => cnt + (item == v), 0));
const setTemp = new Set(temp);
return setTemp.size < temp.length ? false:true
};
reduce์ธ์์ cnt๋ ๋์ ๊ฐ, item์ ํ์ฌ๊ฐ์ธ๋ฐ ๋น๊ตํด์ ๋์ ์ํค๋ ๊ฒ์ผ๋ก
๋ค๋ฅธ ๋ถ์ ์๋ฃจ์ ์ฝ๋
var uniqueOccurrences = function(arr) {
const obj = {};
for(let el of arr) {
obj[el] = obj[el] ? ++obj[el] : 1;
}
const output = Object.values(obj);
return output.length == new Set(output).size
};
๋ด๊ฐ ์ ๊ทผํ ๋ฐฉํฅ์ด๋ ๋น์ทํ๊ฒ ๊ฐ๋๋ฐ ์ฝ๋๋ ํจ์ฌ ๊ฐ๊ฒฐํ๋ค.
'๊ฐ๋ฐ > ๐ฌ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leetCode] 151. Reverse Words in a String - Javascript (0) | 2024.02.02 |
---|---|
[leetCode] 746. Min Cost Climbing Stairs - javascript (0) | 2024.01.31 |
[leetCode] 2215. Find the Difference of Two Arrays (1) | 2024.01.30 |
[leetCode/EASY] 1431. Kids With the Greatest Number of Candies (0) | 2024.01.17 |
[leetCode] 34. Find First and Last Position of Element in Sorted Array - Javascript (0) | 2023.11.10 |