Leetcode Java Remove Digit From Number to Maximize Result
업데이트:
문제
코드
class Solution {
public String removeDigit(String number, char digit) {
char[] nums = number.toCharArray();
int index = 0;
for (int idx = 0; idx < number.length(); idx++) {
if (nums[idx] == digit) {
index = idx;
if (idx < number.length() - 1 && nums[idx] < nums[idx + 1]) {
break;
}
}
}
return number.substring(0, index).concat(number.substring(index + 1));
}
}
결과
설명
-
숫자로 이루어진 문자열 number 내 digit인 문자가 최소 한 번 이상 들어가 있는데, 해당 digit을 제거한 결과가 가장 큰 값을 구하는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- nums는 number를 문자 배열로 변환해서 저장하는 변수이다.
- index는 제거할 문자의 위치를 저장할 변수로, 0으로 초기화한다.
- 0부터 number의 길이 미만까지 idx를 증가시키며 아래를 수행한다.
- nums의 idx번 문자가 digit인 경우, index에 idx를 넣어준다.
- idx가 number의 마지막 문자가 아니고 다음 위치의 값인 $idx + 1$번째 값이 더 큰 경우, 해당 문자를 제거해야 하므로 반복을 중단한다.
- 반복이 완료되어 제거할 문자의 위치를 탐색하였으면, number를 해당 문자 이전과 이후로 분리해서 하나의 문자열로 만들어 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기