문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
양의 정수를 나타내는 문자열 number와 문자 digit이 주어진다.
number에서 정확히 하나의 digit을 제거한 문자열에서 십진수 값으로 변환 했을 때 값이 최대가 되는 문자열을 반환해라.
#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"이다.
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);
}
}