최빈값 구하기(프로그래머스

수민·2022년 11월 6일
0

알고리즘

목록 보기
7/22

문제설명

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 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. 최빈값을 그떄그떄 기록

profile
헬창목표

0개의 댓글