Lv.0 : 최빈값 구하기 [JavaScript]

2024. 8. 18. 17:38Algorithm/프로그래머스

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120812

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제 풀이

function solution(array) {
    var answer = {};
    for(var i of array){
        if(answer[i]) answer[i] += 1;
        else answer[i] = 1;
    }
    
    var filter = Object.keys(answer).filter((e) => answer[e] === Object.values(answer).sort((a, b)=> b - a)[0]);

    return filter.length != 1 ? -1 : Number(filter[0]);
}

answer객체에 array를 돌며 해당 원소의 개수를 저장한다

Object.values(answer).sort((a, b)=> b - a)[0]을 통해 가장 많이 나온 원소의 개수를 찾아서

answer에서 해당 원소의 갯수를 value로 하는 키값들을 거른다 => filter 배열

filter의 길이가 1이 아니라면 최빈값이 여러 개이므로 -1을 리턴하고 1이라면 객체 키라 문자가 된 최빈값을 숫자로 리턴

 

 

 

반응형