숫자 문자열 number 가 주어지고 문자 digit이 주어질 때 number에서 digit을 하나 뺀 숫자중 가장 큰 값을 리턴하는 문제이다.
Example을 보면
2번 예시와 같이 digit이 1일 때 number 에서 1을 뺄 수 있는 경우는 가장 앞의 1을 뺀 231과 가장 뒤에 있는 1을 뺀 123이 나올 수 있다.
이 때 231 > 123 이므로 231이 정답이다.
const removeDigit = function (number, digit) {
let max = 0;
for (let i = 0; i < number.length; i++) {
if (digit === number[i]) {
const first = number.slice(0, i);
const second = number.slice(i + 1, number.length);
const sum = BigInt(first + second);
if (max <= sum) {
max = sum;
}
}
}
return max + "";
};
number 숫자들을 하나씩 순회하면서 digit과 같은 값이 나올 때마다 digit을 기준으로 앞 뒤로 숫자를 잘라 새로운 숫자로 만들어 주었다.
그 다음 max 값과 비교해 현재 새로 만든 값이 max 보다 크다면 새로운 max 값으로 지정해주었다.
number는 아주 큰 숫자도 나올 수 있으므로 BigInt 형을 사용하였고 마지막에 정답을 리턴할 때는 문자열로 리턴해야하므로 +"" 해주어 문자열로 바꾸어 리턴해주었다.
submit을 해보니
정답이었다!