코린이의 소소한 공부노트

[LeetCode/Easy] 2566. Maximum Difference by Remapping a Digit 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2566. Maximum Difference by Remapping a Digit

무지맘 2023. 3. 1. 23:54

1. Input

1) int num

 

2. Output

1) num의 있는 숫자를 remapping해서 다른 수로 만들었을 때의 최댓값과 최솟값의 차를 반환

 

3. Constraint

1) 1 <= num <= 10^8

 

4. Example

Input: num = 11891 -> Output: 99009

설명:

- 최댓값을 얻으려면 19로 바꿔야 한다. -> 99899

- 최솟값을 얻으려면 10으로 바꿔야 한다. -> 890

- 따라서 99899 - 890 = 99009를 반환한다.

 

5. Code

1) 첫 코드(2023/03/01)

String n = String.valueOf(num);
int index = 0;
for(int i=0 ; i<n.length() ; i++)
    if(n.charAt(i)!='9'){
        index = i; break;
    }
String max = n.replaceAll(n.charAt(index)+"","9");
String min = n.replaceAll(n.charAt(0)+"","0");
return Integer.valueOf(max)-Integer.valueOf(min);