[LeetCode] Maximum Difference by Remapping a Digit

아르당·2026년 10월 14일

LeetCode

목록 보기
544/561
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

정수 num이 주어진다. Bob이 10개의 가능한 숫자(0 ~ 9) 중 하나를 다른 숫자로 몰래 바꿀 것이라는 사실을 알고 있다.
num의 숫자 중 정확히 하나를 다른 숫자로 바꿔서 Bob이 만들 수 있는 최댓값과 최솟값의 차이를 반환해라.

Example

#1
Input: num = 11891
Output: 99009

#2
Input: num = 90
Output: 99

Constraints

  • 1 <= num <= 10^8

Solved

class Solution {
    public int minMaxDifference(int num) {
        String str = Integer.toString(num);
        char[] maxChars = str.toCharArray();
        char[] minChars = str.toCharArray();
        
        char replaceMax = ' ';
        for(char c : maxChars){
            if(c != '9'){
                replaceMax = c;
                break;
            }
        }

        for(int i = 0; i < maxChars.length; i++){
            if(maxChars[i] == replaceMax){
                maxChars[i] = '9';
            }
        }

        char replaceMin = minChars[0];
        for(int i = 0; i < minChars.length; i++){
            if(minChars[i] == replaceMin){
                minChars[i] = '0';
            }
        }

        int max = Integer.parseInt(new String(maxChars));
        int min = Integer.parseInt(new String(minChars));

        return max - min;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글