1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-20 01:56:57 +02:00
LeetCode/problems/maximum-units-on-a-truck.kt
Matej Focko e3888415f7
chore: fix formatting
Signed-off-by: Matej Focko <mfocko@redhat.com>
2022-09-09 18:56:13 +02:00

19 lines
611 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
}