[리트코드] 1710. Maximum Units on a Truck 본문

코테 문제 풀이

[리트코드] 1710. Maximum Units on a Truck

미니모아 2022. 4. 12. 20:52
반응형

1710. Maximum Units on a Truck

문제 설명

You are assigned to put some amount of boxes onto one truck. You are given a 2D array boxTypes, where boxTypes[i] = [numberOfBoxesi, numberOfUnitsPerBoxi]:

  • numberOfBoxesi is the number of boxes of type i.
  • numberOfUnitsPerBoxi is the number of units in each box of the type i.

You are also given an integer truckSize, which is the maximum number of boxes that can be put on the truck. You can choose any boxes to put on the truck as long as the number of boxes does not exceed truckSize.

Return the maximum total number of units that can be put on the truck.

트럭에 k개의 박스를 실을 때 물건의 최대 개수 구하기

제한 조건

  • 1 <= boxTypes.length <= 1000
  • 1 <= numberOfBoxesi, numberOfUnitsPerBoxi <= 1000
  • 1 <= truckSize <= 106

풀이

boxTypes = [[1,3],[2,2],[3,1]], 

물건 3개인 유닛이 1개

물건 2개인 유닛이 2개

물건 1개인 유닛이 3개

물건이 많이 들어있는 유닛 먼저 싣는다.

1 * 3 + 2* 2 + 1 * 1 = 8

유닛을 기준으로 내림차순으로 정렬한 다음 박스의 개수가 k가 될 때까지 싣는다.

class Solution:
    def maximumUnits(self, boxTypes: List[List[int]], truckSize: int) -> int:
        boxTypes.sort(key=lambda x:-x[1])
        result = 0
        for box, unit in boxTypes:
            
            if truckSize - box > 0 :
                truckSize -= box
                result += box * unit
                
            else:
                result += truckSize * unit
                break
                
            
        
        return result
반응형
Comments