본문 바로가기

Algorithm/Programmers

(JS) [Programmers - 최빈값 구하기] - 2023. 2.24.(금)

문제 

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000

Solution.js

function solution(array) {
    if(array.length === 1) return array[0];
    
    const map = new Map();
    
    for(const v of array) {
        map.set(v, map.get(v)+1 || 1);
    }
    const arr = [...map].sort((a, b) => b[1] - a[1]);
    
    if(arr.length === 1) return arr[0][0]
    return arr[0][1] === arr[1][1] ? -1 : +arr[0][0];
}

 

 

출처 : 프로그래머스 코딩테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/120812