const solve = (arr) => {
arr.sort((a, b) => a - b);
let count = 0;
let temp = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === arr[i + 1]) {
count++;
} else {
temp.push(count + 1);
count = 0;
}
}
temp = temp.filter((x) => x > 1);
return temp.length ? temp : [-1];
};
let arr = [1, 2, 3, 3, 3, 3, 4, 4];
console.log(solve(arr));
// ๋ถ์คํธ์บ ํ ๋ ํผ๋ฐ์ค 1
function countOf(arr, value) { //---๊ฐ
var count = 0;
arr.forEach(element => {
if (element == value) count++;
});
return count;
}
function solution(arr) {
var answer = [];
var set = new Set([]);
arr.forEach( element => {
if (set.has(element)) return; //---๋
set.add(element);
count = countOf(arr, element);
if (count > 1) answer.push(count); //---๋ค
});
if (answer.length == 0) answer.push(-1); //---๋ผ
return answer;
}
// ๋ถ์คํธ์บ ํ ๋ ํผ๋ฐ์ค 2
function solution(arr) {
var answer = [];
var map = new Map();
arr.forEach( element => {
if (map.has(element)) { //---๊ฐ
map.set(element, map.get(element) + 1);
}
else { //---๋
map.set(element, 1);
}
});
map.forEach( (value) => {
if (value > 1) { //---๋ค
answer.push(value);
}
});
if (answer.length == 0) answer.push(-1); //---๋ผ
return answer;
}
์... ์ฌ์ค ๋ ๋ด ์ฝ๋๊ฐ ๋ ๊น๋ํ ๊ฒ ๊ฐ์๋ฐ, ๋ ํผ๋ฐ์ค์ ์๋ Set, Map ๋ฑ์ ํ์ฉํ๋ ๊ฒ๋ ๋ฐฐ์ธ ์ ์์ด์ ์ข์๋ค. :)
'๐ JavaScript > ์ด๋ชจ์ ๋ชจ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] scope (0) | 2022.05.25 |
---|---|
[JS] ๊ณ ์ฐจํจ์(ํด๊ฒฐ) (0) | 2022.05.24 |
[JS] 'use strict'; (0) | 2022.05.12 |