Q. 양의 정수가 주어질 때,
숫자에서 k개의 자릿수를 제거하여 얻을 수 있는 가장 큰 수를 구하세요.
number는 최대 1,000,000자리까지 입력될 수 있습니다.k는 1 이상 len(number) - 1 이하입니다.알고리즘 문제인데 내용이 재밌고 스택을 사용해 보아서 정리해 보려고 한다.
let number = 195324, k = 4;
function del(number, k) {
let num = String(number);
let ResultArray = [];
let Remove = k;
for(let i=0;i<num.length;i++){
const digit = num[i];
while(Remove > 0 && ResultArray.length > 0 &&
ResultArray[ResultArray.length-1] < digit
)
{
ResultArray.pop();
Remove--;
}
ResultArray.push(digit);
}
while (Remove > 0) {
ResultArray.pop();
Remove--;
}
return ResultArray.join('');
}
console.log(del(number, k));
let num = String(number);
let ResultArray = [];
let Remove = k;
for(let i = 0; i < num.length; i++) {
const digit = num[i];
while(Remove > 0 && ResultArray.length > 0 &&
ResultArray[ResultArray.length-1] < digit
)
{
ResultArray.pop();
Remove--;
}
ResultArray.push(digit);
while (Remove > 0) {
ResultArray.pop();
Remove--;
}
이러한 방식으로 알고리즘을 작성했다.
흥미로웠던 것은
즐겁다.