function solution(number, k) {
  let answer = [];
  let length = k;

  for (let i = 0; i < number.length; i++) {
    while (k > 0 && answer.length && number[i] > answer[answer.length - 1]) {
      answer.pop();
      k--;
    }

    answer.push(number[i]);
  }

  return answer.join('').slice(0, number.length - length);
}

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ทธ๋ฆฌ๋”” ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ์ค‘ ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ์ด๋‹ค.

์ฒ˜์Œ์—๋Š”,

๊ฐ ์ž๋ฆฟ ์ˆ˜์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž ์ค‘ (number์˜ ์ผ๋ถ€) ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฐ์—ดํ•˜๋„๋ก ์‹œ๋„ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด๋ณด์•˜์„ ๋•Œ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ ์—†์ด O(N^2) ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ „์ฒด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ค‘ 10๋ฒˆ์—์„œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ฒฐ๊ตญ 10๋ฒˆ์— ๋Œ€ํ•œ ๋ฐ˜๋ก€๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•ด๋ณด์•˜๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

stack ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ number๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ stack ์— ์ด๋ฏธ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ˆ˜๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์„ ๊ฒฝ์šฐ stack ์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  k ๋งŒํผ์˜ ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ’€๊ณ ๋‚˜๋‹ˆ ์ฝ”๋“œ๊ฐ€ ํ•œ๊ฒฐ ์งง๊ณ  ๊น”๋”ํ•˜๋‹ค .. ์‚ฝ์งˆ ์—ด์‹ฌํžˆ ํ–ˆ๋„ค ๐Ÿฅน