mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-10 00:09:06 +01:00
23 lines
679 B
Kotlin
23 lines
679 B
Kotlin
class Solution {
|
|
data class BoxType(val boxes: Int, val units: Int)
|
|
|
|
fun toBoxType(x: IntArray): BoxType = BoxType(x[0], x[1])
|
|
|
|
fun maximumUnits(
|
|
boxTypes: Array<IntArray>,
|
|
truckSize: Int,
|
|
): Int =
|
|
boxTypes
|
|
.map { toBoxType(it) }
|
|
.sortedByDescending(BoxType::units)
|
|
.fold(0 to 0) { acc, boxType ->
|
|
if (acc.first < truckSize) {
|
|
val count = minOf(truckSize - acc.first, boxType.boxes)
|
|
|
|
(acc.first + count) to (acc.second + count * boxType.units)
|
|
} else {
|
|
acc
|
|
}
|
|
}
|
|
.second
|
|
}
|