https://leetcode.com/problems/minimum-sum-of-four-digit-number-after-splitting-digits/
문제파악 및 재정의
정확히 4자리로 구성된 양의 정수 num이 제공됩니다.
num에서 찾은 숫자를 사용하여 num을 두 개의 새로운 정수 new1과 new2로 나눕니다.
new1 및 new2에는 선행 0이 허용되며 num에 있는 모든 숫자를 사용해야 합니다.
자료구조 및 알고리즘 선택
구현
1000 [1][0][0][0] -> 1 0 0 0 -> 0 0 0 1 except 0
1954 [1][9][5][4] -> 9 5 4 1 -> 작은 숫자 2개를 십진수로 -> [1][] [4][]
2223 [2][2][2][3]
class Solution {
public int minimumSum(int num) {
char[] temp = Integer.toString(num).toCharArray();
Arrays.sort(temp);
int first = 0;
int second = 0;
for(int idx =0; idx < temp.length; idx++){
if(temp[idx] != '0'){
if(idx == 0){
first += Integer.valueOf(temp[idx] - '0') * 10;
}else if(idx == 1){
second += Integer.valueOf(temp[idx] - '0') * 10;
}else if(idx ==2){
first += Integer.valueOf(temp[idx] - '0');
}else if(idx == 3){
second += Integer.valueOf(temp[idx] - '0');
}
}
}
return first + second;
}
}
다른사람 코드
int[] digits = new int[4];
int i=0;
while(i<=3)
{
digits[i++] = num%10;
num/=10;
}
Arrays.sort(digits);
// digits[0] at ten's place and digits[2] at one's place makes the first number
// digits[1] at ten's place and digits[3] at one's place makes the second number
return digits[0]*10+digits[2]+digits[1]*10+digits[3];
'Algorithm > LeetCode' 카테고리의 다른 글
2037. Minimum Number of Moves to Seat Everyone (0) | 2023.03.31 |
---|---|
1859. Sorting the Sentence (0) | 2023.03.31 |
2413. Smallest Even Multiple (0) | 2023.03.31 |
2469. Convert the Temperature (0) | 2023.03.30 |
1920. Build Array from Permutation (0) | 2023.03.30 |