JAVA공부

최빈값 구하기

ideas0123 2024. 11. 21. 17:05

프로그래머스 문제)

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.

정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.

최빈값이 여러 개면 -1을 return 합니다.


제한사항

0 < array의 길이 < 100

0 ≤ array의 원소 < 1000

function solution(array) {
    var answer = 0;
    var count=new Map();
    var result_array=[];//최빈값넣을 array
    var max=0;
    
    for(let i of array){
        if(!count.has(i)){//i값이 없다면 count=0        
            count.set(i, 0);
        }else if(count.has(i)){//i 값이 있다면, 있던 값에 count+1
            count.set(i, count.get(i)+1)
            while(count.get(i)>max){
                max++;
            }
        }
    }
    
    for(let [k, v] of count){
        if(v==max){
            result_array.push(k);//key값 주입
        }
    }
    
    answer = result_array.length==1? result_array[0]:-1;
    
    return answer;
}