개발/알고리즘(코딩테스트)

프로그래머스, 자바스크립트) 최빈값 구하기

빔네모 2024. 5. 16. 23:41

문제

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

 

프로그래머스

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

programmers.co.kr

 

풀이

key는 해당 숫자, value는 갯수 를 가지는 객체를 만든다. 그리고 객체를 갯수 순서대로 정렬해서 조건에 맞게 비교한다.

function solution(array) {
  const obj = {};
  array.forEach((element) => {
    obj[element] = obj[element] ? obj[element] + 1 : 1;
  });
  //value가 큰 순서대로 정렬
  const result = Object.keys(obj).sort((a, b) => obj[b] - obj[a]);
  return obj[result[0]] === obj[result[1]] ? -1 : +result[0];
}