끄적끄적 코딩
article thumbnail
728x90

n개의 귤 중 k개를 판매하려고 합니다.
이 때 각 귤들의 크기가 있는데 종류가 가장 적게 했을 떄의 결과값을 출력하는 문제입니다.

그리디 문제로 크기에 따라 개수를 내림차순으로 정렬해줍니다.
정렬된 값에서 차례대로 개수를 더해서 k와 같거나 커지면 카운트한 값을 출력해줍니다.

function solution(k, tangerine) {
    let answer = 0;
    let obj = {}; 
    
    tangerine.forEach((i) =>{
        obj[i] = ++obj[i] || 1;  
    });
        
    const sortObj = Object.values(obj).sort((x, y) => y- x);
    
    let sum = 0;
    
    for(let num of sortObj){
        ++answer;
        sum += num;
        if(k <= sum){
            break;
        }
    }
    
    return answer;
}

'알고리즘' 카테고리의 다른 글

[Java] 백준 14888번 연산자 끼워넣기  (0) 2023.01.17
[Java] SWEA - View  (0) 2023.01.16
[C++] 백준 14889번 스타트와 링크  (0) 2023.01.15
[Java] SWEA - 평행사변형  (0) 2023.01.14
[Java] SWEA - 준환이의 양팔저울  (0) 2023.01.13

검색 태그