LeetCode in Kotlin

2578. Split With Minimum Sum

Easy

Given a positive integer num, split it into two non-negative integers num1 and num2 such that:

Return the minimum possible sum of num1 and num2.

Notes:

Example 1:

Input: num = 4325

Output: 59

Explanation: We can split 4325 so that num1 is 24 and num2 is 35, giving a sum of 59. We can prove that 59 is indeed the minimal possible sum.

Example 2:

Input: num = 687

Output: 75

Explanation: We can split 687 so that num1 is 68 and num2 is 7, which would give an optimal sum of 75.

Constraints:

Solution

@Suppress("NAME_SHADOWING")
class Solution {
    fun splitNum(num: Int): Int {
        var num = num
        val ans = IntArray(10)
        while (num > 0) {
            ans[num % 10]++
            num /= 10
        }
        var num1 = 0
        var num2 = 0
        for (i in 0..9) {
            for (j in 0 until ans[i]) {
                if (num1 <= num2) {
                    num1 = num1 * 10 + i
                } else {
                    num2 = num2 * 10 + i
                }
            }
        }
        return num1 + num2
    }
}