LeetCode in Kotlin

1688. Count of Matches in Tournament

Easy

You are given an integer n, the number of teams in a tournament that has strange rules:

Return the number of matches played in the tournament until a winner is decided.

Example 1:

Input: n = 7

Output: 6

Explanation: Details of the tournament:

Total number of matches = 3 + 2 + 1 = 6.

Example 2:

Input: n = 14

Output: 13

Explanation: Details of the tournament:

Total number of matches = 7 + 3 + 2 + 1 = 13.

Constraints:

Solution

@Suppress("NAME_SHADOWING")
class Solution {
    fun numberOfMatches(n: Int): Int {
        var n = n
        var matches = 0
        while (n > 1) {
            if (n % 2 == 0) {
                matches += n / 2
                n /= 2
            } else {
                matches += (n - 1) / 2
                n = (n + 1) / 2
            }
        }
        return matches
    }
}