728x90
코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 스쿨 (programmers.co.kr)
// 스택을 활용했다.
function solution(number, k) {
const arr = [];
const nums = number.split('');
for (let i = 0; i < nums.length; i++) {
// 만들고 있는 수 배열의 가장 마지막과 현재 지나는 숫자를 비교해서,
// 버릴 기회(k)가 아직 남아있다면, 값을 바꾼다.
while (nums[i] > arr.at(-1) && k > 0 && arr.length > 0) {
arr.pop();
k--;
}
arr.push(nums[i]);
}
// 숫자가 교환될 기회가 남아 숫자가 길어지면 잘라내어 반환
return arr.join('').substring(0, number.length - k);
}