알고리즘

[Lv_2] 큰 수 만들기

빅디 2023. 8. 16. 20:26
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);
}