N

(Leet Code JS)Maximum Units on a Truck 본문

Leet Code 알고리즘

(Leet Code JS)Maximum Units on a Truck

naeunchan 2022. 7. 9. 15:43
728x90
반응형

https://leetcode.com/problems/maximum-units-on-a-truck/

 

Maximum Units on a Truck - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

정렬을 활용한 문제.

 

주어진 boxTypes 배열을 정렬하는데,

boxTypes[1] 번째 요소의 내림차순으로 정렬을 해준다.

 

이후 for문을 이용해 truckSize가 채워지는 만큼 박스를 트럭에 채운다.

만약 truckSize - num이 0 이상이라면 모든 박스를 트럭에 올릴 수 있다.

truckSize를 num 개 줄이고, answer에는 boxTypes[i][0] * boxTypes[i][1]을 더해준다.

 

그렇지 않고 truckSize - num 이 음수라면 모든 박스를 올릴 수 없다는 뜻이 된다.

올릴 수 있는 최대 박스 수는 현재까지의 truckSize가 된다.

그렇기 때문에 answer에는 남은 truckSize * boxTypes[i][1]을 더해주고, for문을 빠져 나가거나 리턴하면 된다.

var maximumUnits = function(boxTypes, truckSize) {
    let answer = 0;
    
    boxTypes.sort((a, b) => b[1] - a[1]);
    
    for(let i = 0; i < boxTypes.length; i++){
        const [num, units] = boxTypes[i];
        const diff = truckSize - num;
        
        if(diff >= 0){
            truckSize -= num;
            answer += (num * units);
        } else if(diff < 0){
            answer += (truckSize * units);
            break;
        }
    }
    
    return answer;
};
728x90
반응형