코딩테스트

[프로그래머스/Javascript] 귤 고르기

셈인 2023. 9. 6. 22:16

📄 문제

Lv 2. [연습문제] 귤 고르기

 

프로그래머스

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

programmers.co.kr


🔍 문제 접근

💡 Map을 이용해 귤 사이즈별 개수를 저장
💡 구한 개수를 내림차순으로 정렬하여 개수가 많은 것부터 상자에 담기

 


📝 문제 풀이

function solution(k, tangerine) {
    const descOfNumbers = getNumberBySize(tangerine).sort((a, b) => b[1] - a[1]);
    let sum = 0; 
    let count = 0;
    
    for (let i = 0; sum < k; i++) {
        sum += descOfNumbers[i][1];
        count += 1;
    }
    
    return count;
}

function getNumberBySize(tangerine) {
    const tangerineMap = new Map();
    
    for (let i = 0; i < tangerine.length; i++) {
        const size = tangerine[i];
        
        if (tangerineMap.has(size)) {
            tangerineMap.set(size, tangerineMap.get(size) + 1);
        } else {
            tangerineMap.set(size, 1);
        }
    }
    
    return Array.from(tangerineMap);
}