Minimum Sum of Four Digit Number After Splitting Digits

easy math greedy sorting

Problem

Given a four-digit number num, split its digits into two new numbers (without leading zeros) so that the sum is minimised. Return the minimum sum.

Inputnum = 2932
Output52
Sorted digits: [2, 2, 3, 9] → 23 + 29 = 52.

def minimum_sum(num):
    d = sorted(str(num))
    a = int(d[0] + d[2])
    b = int(d[1] + d[3])
    return a + b
function minimumSum(num) {
  const d = String(num).split("").sort();
  const a = Number(d[0] + d[2]);
  const b = Number(d[1] + d[3]);
  return a + b;
}
class Solution {
    public int minimumSum(int num) {
        char[] d = Integer.toString(num).toCharArray();
        Arrays.sort(d);
        int a = (d[0] - '0') * 10 + (d[2] - '0');
        int b = (d[1] - '0') * 10 + (d[3] - '0');
        return a + b;
    }
}
int minimumSum(int num) {
    string d = to_string(num);
    sort(d.begin(), d.end());
    int a = (d[0]-'0')*10 + (d[2]-'0');
    int b = (d[1]-'0')*10 + (d[3]-'0');
    return a + b;
}
Time: O(1) Space: O(1)