1. O(n^2)
function solution(array) {
var min = 0;
var minCount =0;
for (var i=0;i<array.length;i++){
var count = 0;
for(var j = 0;j<array.length;j++){
if (array[i]==array[j]){
count++;
}
}
if(count > minCount )
{
minCount = count;
min = array[i];
}
else if(count == minCount && min!=array[i]){
min = -1
}
}
return min;
}
2. 해시맵 이용 O(n)
function solution(array) {
let map = new Map();
let max = [-1, -1];
for (let i = 0; i<array.length; i++) {
let tmp = array[i];
let count = map.has(tmp) ? map.get(tmp) + 1 : 1;
map.set(tmp, count);
if (count > max[0]) {
max[0] = count;
max[1] = tmp;
}
else if (count == max[0]) {
max[1] = -1;
}
}
return max[1];
}
'자바스크립트' 카테고리의 다른 글
[javascript] 반올림, 올림, 내림, Math.round, Math.ceil , Math.floor - 피자 나눠먹기(1) - 프로그래머스 (0) | 2023.07.07 |
---|---|
[javascript]fillter - 각도기(프로그래머스) (0) | 2023.07.06 |
[javascript] 최소공배수, 약분 -분수의 덧셈(프로그래머스) (0) | 2023.07.06 |
[javascript]배열관리 push, unshift, splice, pop, shift, splice - n이하 짝수 (0) | 2023.07.06 |
[javascript] sort함수 - 중앙값 구하기 (0) | 2023.07.05 |