최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
function solution(array) {
let soltedArray=array.sort((a,b)=>a-b);
let cnt=0;
let choi=-1; //최빈값이 뭔지
let choiRepeatCnt=0; //최빈값이 몇번 반복한건지
let repeatCnt=0; //현재 똑같은숫자가 몇번 등장했는지
let beforeNumber=-1; //지금 보고있는숫자랑 이전숫자 비교
let isDupChoi=false;
while(cnt<array.length){
if(beforeNumber!==array[cnt]){
repeatCnt=1;
} else{
repeatCnt++;
}
if(repeatCnt===choiRepeatCnt){
if(choi!==array[cnt]){
isDupChoi=true;
}
}
if(repeatCnt>choiRepeatCnt){
choi=array[cnt];
choiRepeatCnt=repeatCnt;
isDupChoi=false;
}
beforeNumber=array[cnt];
cnt=cnt+1;
}
if(isDupChoi) return -1;
return choi;
}
// 1.앞에서부터 차례대로 원소를 확인하며 개수를 센다.
// 2. 최빈값을 그떄그떄 기록