[프로그래머스] 최빈값 구하기 (level0, JavaScript)

이민영·2023년 8월 26일

문제

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

문제풀이

function solution(array) {
    // 배열 길이가 하나일 경우 첫번째 원소 바로 리턴
    if(array.length === 1) return array[0]
    
    let obj = {}
    // 빈 객체에 array를 돌아 처음 들어오는 key이면 key추가, 값은 1 넣어주고
    // 기존에 있던 key이면 값만 1씩 증가.
    for(let num of array){
        if(obj[num]){
            obj[num] ++;
        } else {
            obj[num] = 1;
        }
    }
    //obj key를 value로 기준하여 정렬
    const objKeysSort = Object.keys(obj).sort((a,b)=> obj[b] - obj[a]);
    console.log(objKeysSort)
   // 정렬한 objKeysSort는 인덱스로 활용하여 0번째랑 1번째 인덱스에 값이 동일하면 -1 리턴
    if(obj[objKeysSort[0]] === obj[objKeysSort[1]]) return -1;
    else return Number(objKeysSort[0])
}

느낀점

0단계 문제 치고는 어려운편이지만 딕셔너리와 sort만 잘 활용하면 금방 풀 수 있을 거 같다.

profile
Frontend Developer

0개의 댓글