LeetCode in Kotlin

1561. Maximum Number of Coins You Can Get

Medium

There are 3n piles of coins of varying size, you and your friends will take piles of coins as follows:

Given an array of integers piles where piles[i] is the number of coins in the ith pile.

Return the maximum number of coins that you can have.

Example 1:

Input: piles = [2,4,1,2,7,8]

Output: 9

Explanation: Choose the triplet (2, 7, 8), Alice Pick the pile with 8 coins, you the pile with 7 coins and Bob the last one.

Choose the triplet (1, 2, 4), Alice Pick the pile with 4 coins, you the pile with 2 coins and Bob the last one. The maximum number of coins which you can have are: 7 + 2 = 9.

On the other hand if we choose this arrangement (1, 2, 8), (2, 4, 7) you only get 2 + 4 = 6 coins which is not optimal.

Example 2:

Input: piles = [2,4,5]

Output: 4

Example 3:

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

Output: 18

Constraints:

Solution

class Solution {
    fun maxCoins(piles: IntArray): Int {
        piles.sort()
        var j = 0
        var coins = 0
        var i = piles.size - 2
        while (i > 0) {
            coins += piles[i]
            if (++j == piles.size / 3) {
                return coins
            }
            i -= 2
        }
        return coins
    }
}