LeetCode in Kotlin

1894. Find the Student that Will Replace the Chalk

Medium

There are n students in a class numbered from 0 to n - 1. The teacher will give each student a problem starting with the student number 0, then the student number 1, and so on until the teacher reaches the student number n - 1. After that, the teacher will restart the process, starting with the student number 0 again.

You are given a 0-indexed integer array chalk and an integer k. There are initially k pieces of chalk. When the student number i is given a problem to solve, they will use chalk[i] pieces of chalk to solve that problem. However, if the current number of chalk pieces is strictly less than chalk[i], then the student number i will be asked to replace the chalk.

Return the index of the student that will replace the chalk.

Example 1:

Input: chalk = [5,1,5], k = 22

Output: 0

Explanation: The students go in turns as follows:

Student number 0 does not have enough chalk, so they will have to replace it.

Example 2:

Input: chalk = [3,4,1,2], k = 25

Output: 1

Explanation: The students go in turns as follows:

Student number 1 does not have enough chalk, so they will have to replace it.

Constraints:

Solution

class Solution {
    fun chalkReplacer(chalk: IntArray, k: Int): Int {
        val localSum = sum(chalk)
        var currentIndex = 0
        if (localSum != 0L) {
            var localK = (k % localSum).toInt()
            while (chalk[currentIndex] <= localK) {
                localK -= chalk[currentIndex++]
            }
        }
        return currentIndex
    }

    private fun sum(chalk: IntArray): Long {
        var sum: Long = 0
        for (i in chalk) {
            sum += i.toLong()
        }
        return sum
    }
}