Algorithm

[프로그래머스/JavaScript] Lv.2 귤 고르기

cob 2022. 11. 25. 09:20
해당 문제는 Hash정렬을 활용하는 문제입니다.

 

 

 

프로그래머스

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

programmers.co.kr

 

 

 

문제 풀이

귤의 크기별 개수를 담은 map을 생성하고, 해당 map을 정렬하여 BOX에 담는 귤을 구한다.
function solution(k, tangerine) {
    // 1) 귤의 크기별 개수를 담을 map 생성한다.
    const kind = new Map();
    let answer =0 ;
    
    // 2) 크기별 개수를 구한다.
    tangerine.forEach(org => {
        kind.set(org, kind.has(org) ? kind.get(org)+1 : 1);
    });

    // 3) 귤의 개수에 따른 내림차순 정렬
    const sortArr = [... kind].sort((a,b) => b[1] - a[1]);
    
    // 4) BOX에 담는다.
    sortArr.forEach(arr => {
        // 5) 담을 개수(k)가 0보다 클 때만 BOX에 담는다.
        if(k > 0) {
            // 6)  담을 개수 - 귤의 개수
            k -= arr[1];    
            
            // 7) 담게 되면 Box에 새로운 크기의 귤이 들어 오므로 1증가
            answer++;
        } 
    });
    // 8) 귤의 크기별 종류를 return한다.
     return answer;
};
반응형