문제설명
- 어떤 숫자에서 k개의 숫를 제거하여 가장 큰 숫자를 구하기
- 숫자 1924에서 수 두개를 제거하면 [19, 12, 14, 92, 94, 24]를 만들 수 있고 이중 가장 큰 수는 94
- 문자열 형식 숫자 number와 제거할 수의 개수 k
- number에서 k 개의 수를 제거했을 때 가장 큰 숫자를 문자열 형태로 반환
제한조건
- number는 1자리 이상 1,000,000자리 이하인 숫자
- k는 1이상 number의 자릿수 미만인 자연수
풀이
function solution(number, k) {
const stack = [];
for(let i=0;i<number.length;i++){
const el = number[i];
while(k>0 && stack[stack.length-1]<el){
stack.pop();
--k;
}
stack.push(el);
}
stack.splice(stack.length-k,k);
return stack.join('');
}
체크포인트
- 탐욕법(Greedy) 공부하기
- 숫자가 모두 같은 경우 k가 감소하지 않음!!