21 lines
434 B
Go
21 lines
434 B
Go
|
package main
|
||
|
|
||
|
import "sort"
|
||
|
|
||
|
func maximumUnits(boxTypes [][]int, truckSize int) int {
|
||
|
sort.Slice(boxTypes, func(i, j int) bool {
|
||
|
return boxTypes[i][1] > boxTypes[j][1]
|
||
|
})
|
||
|
units := 0
|
||
|
count := 0
|
||
|
for idx := 0; idx < len(boxTypes); idx++ {
|
||
|
units += boxTypes[idx][0] * boxTypes[idx][1]
|
||
|
count += boxTypes[idx][0]
|
||
|
if count >= truckSize {
|
||
|
units -= (count - truckSize) * boxTypes[idx][1]
|
||
|
return units
|
||
|
}
|
||
|
}
|
||
|
return units
|
||
|
}
|