[LeetCode] Remove Digit From Number to Maximize Result

아르당·2026년 8월 22일

LeetCode

목록 보기
481/583
post-thumbnail

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

Problem

양의 정수를 나타내는 문자열 number와 문자 digit이 주어진다.
number에서 정확히 하나의 digit을 제거한 문자열에서 십진수 값으로 변환 했을 때 값이 최대가 되는 문자열을 반환해라.

Example

#1
Input: number = "123", digit = "3"
Output: "12"
Explanation: "123"에서 "3"은 오직 한개이다. '3'을 제거한 후, 결과는 "12"이다.

#2
Input: number = "1231", digit = "1"
Output: "231"
Explanation: 첫 번째 '1'을 지워서 "231"을 얻거나 두 번째 '1'을 지워서 "123"을 얻는다.
231 > 123 이므로, "231"을 반환한다.

#3
Input: number = "551", digit = "5"
Output: "51"
Explanation: 첫 번째 또는 두 번째 '5'를 "551"에서 지운다.
결과 둘 다 문자열 "51"이다.

Constraints

  • 2 <= number.length <= 100
  • number는 숫자 '1'부터 '9'로 구성된다.
  • digit은 숫자 '1'부터 '9'로 구성된다.
  • digit은 number에서 최소 한 번 나타난다.

Solved

class Solution {
    public String removeDigit(String number, char digit) {
        int n = number.length();

        for(int i = 0; i < n - 1; i++){

            if(number.charAt(i) == digit && number.charAt(i) < number.charAt(i + 1)){
                return number.substring(0, i) + number.substring(i + 1);
            }

        }
        
        int last = number.lastIndexOf(digit);
        
        return number.substring(0, last) + number.substring(last + 1);
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글