문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
양의 정수 num이 주어지고, 다음 조건을 만족하는 음수가 아닌 두 개의 정수 num1과 num2로 나눠라.
num1과 num2의 합으로 가능한 최솟값을 반환해라.
#1
Input: num = 4325
Output: 59
Explanation: 4325를 나눠서 num1은 24와 num2는 35이고, 59의 합이 된다. 59가 실제로 가능한 최소 합을 증명한다.
#2
Input: 687
Output: 75
Explanation: 687을 나눠서 num1은 68과 num2는 7이고, 75라는 최적의 합을 갖는다.
class Solution {
public int splitNum(int num) {
int[] nums = new int[10];
int num1 = 0;
int num2 = 0;
int current = 1;
while(num != 0){
nums[num % 10]++;
num /= 10;
}
for(int i = 0; i < 10; i++){
int count = nums[i];
while(count != 0){
if(current == 1){
num1 = num1 * 10 + i;
}else{
num2 = num2 * 10 + i;
}
current *= -1;
count--;
}
}
return num1 + num2;
}
}