LeetCode in Kotlin

3457. Eat Pizzas!

Medium

You are given an integer array pizzas of size n, where pizzas[i] represents the weight of the ith pizza. Every day, you eat exactly 4 pizzas. Due to your incredible metabolism, when you eat pizzas of weights W, X, Y, and Z, where W <= X <= Y <= Z, you gain the weight of only 1 pizza!

Find the maximum total weight you can gain by eating all pizzas optimally.

Note: It is guaranteed that n is a multiple of 4, and each pizza can be eaten only once.

Example 1:

Input: pizzas = [1,2,3,4,5,6,7,8]

Output: 14

Explanation:

The total weight gained after eating all the pizzas is 8 + 6 = 14.

Example 2:

Input: pizzas = [2,1,1,1,1,1,1,1]

Output: 3

Explanation:

The total weight gained after eating all the pizzas is 2 + 1 = 3.

Constraints:

Solution

class Solution {
    fun maxWeight(pizzas: IntArray): Long {
        val n = pizzas.size
        val m = n / 4
        val z = (m + 1) / 2
        val y = m / 2
        var j = 0
        pizzas.sort()
        var res: Long = 0
        for (i in 0..<z) {
            res += pizzas[n - 1 - j].toLong()
            j += 1
        }
        for (i in 0..<y) {
            res += pizzas[n - 1 - j - 1].toLong()
            j += 2
        }
        return res
    }
}