๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ (42883)

๋ฌธ์ œ๋งํฌ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ

 

programmers.co.kr

 

 

์ ‘๊ทผ ๋ฐฉ๋ฒ•

number์˜ ์ฒซ ์š”์†Œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์„ resultArr์— ์ผ๋‹จ pushํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ์กฐ๊ฑด๋Œ€๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

์กฐ๊ฑด 1. ๋” ํฐ์ˆ˜(resultArr[resultArr.length-1] < number[i])๊ฐ€ ๋‚˜์˜ฌ์‹œ ๋” ํฐ์ˆ˜๋กœ ๋ฐ”๊พผ๋‹ค.
์กฐ๊ฑด 2. ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋”์ด์ƒ ์—†์œผ๋ฉด(deleteCnt === k)  ๋‚˜๋จธ์ง€ ์ˆ˜๋Š” ๊ทธ๋Œ€๋กœ ๋„ฃ๋Š”๋‹ค.
     ์กฐ๊ฑด 2-1. ๋‚˜๋จธ์ง€ ์ˆ˜๋ฅผ ๋„ฃ์„๋•Œ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ˆ˜(number.length - k)์ด์ƒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค.
function solution(number, k) {
    var answer = '';
    const resultArr = [];
    let deleteCnt = 0;
    
    for(let i = 0; i < number.length; i++){
        while(deleteCnt < k && resultArr[resultArr.length-1] < number[i]){
            resultArr.pop();
            deleteCnt++;
        }
        if(resultArr.length < number.length - k) resultArr.push(number[i])
    }
    answer = resultArr.join("");
    return answer;
}