[CDT - Javascript] 프로그래머스 연습문제 @ 귤 고르기

김현수·2024년 1월 16일
0

cdt

목록 보기
42/51


🖋️ 귤 고르기


# 문제 설명

과수원에서 귤을 수확
수확한 귤 중 'k'개를 골라
상자 하나에 담아 판매

  • 조건

    • 수확한 귤울 크기별로 분류할 때
      서로 다른 종류의 수를 최소화
  • 매개 변수

    • 경화가 한 상자에 담으려는 귤의 개수 k
    • 귤의 크기를 담은 배열 tangerine
  • 반환값

    • 귤 k개를 고를 때 크기가
      서로 다른 종류의 수의 최솟값을 return

  • 📢 제한사항

    • 1 ≤ k ≤ tangerine의 길이 ≤ 100,000
    • 1 ≤ tangerine의 원소 ≤ 10,000,000

  • 📰 입출력 예시

ktangerineresult
6[1, 3, 2, 5, 4, 5, 2, 3]3
4[1, 3, 2, 5, 4, 5, 2, 3]2
2[1, 1, 1, 1, 2, 2, 2, 3]1



  • CODE

function solution(k, tangerine) {
    const tMap = {}; 
    tangerine.forEach((v) => {
        tMap[v] = ++tMap[v] || 1;
    })
    
    const kind = Object.values(tMap).sort((a, b) => b - a);
    
    let [sum, count] = [0, 0];
    for (let v of kind) {
        sum += v;
        count++;
        if (sum >= k) break;
    }
    
    return count;
}

풀이

  • 객체와 정렬을 통해 solution 구하기

  • 해당 Key 의 Count 를 담은 객체 정의
profile
일단 한다

0개의 댓글