N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.
첫째 줄에 N과 K가 주어진다. (1 ≤ K < N ≤ 500,000)
둘째 줄에 N자리 숫자가 주어진다. 이 수는 0으로 시작하지 않는다.
입력으로 주어진 숫자에서 K개를 지웠을 때 얻을 수 있는 가장 큰 수를 출력한다.
pop
한다.pop
하여 빠진 수는 지우는 K개 수 중 하나가 된다.while
문을 돌면서 감소시켰기 때문에 처음 입력으로 주어진 k와 다른 k다.function solution(n, k, num) {
let answer;
let stack = [];
for (let i = 0; i < n; i++) {
while (stack.length && stack[stack.length - 1] - num[i] < 0 && k) {
stack.pop();
k--;
}
stack.push(num[i]);
}
answer = stack.join("").substring(0, stack.length - k);
return answer;
}