본문 바로가기
코딩테스트(알고리즘)/프로그래머스

[프로그래머스] 큰 수 만들기 (Javascript)

by Cafe Mocha 2022. 6. 22.

https://programmers.co.kr/learn/courses/30/lessons/42883

 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr


접근 : 그리디

 

1. stack을 활용하여 최대값 확인

2. 반례 : 내림차순으로 들어오면 k값이 유지되는 현상으로 12번 테스트케이스에서 문제발생

3. 예외 처리 완료.

 

function solution(number, k) {
    number = number.split("").map(v=>+v);
    let stk = [];
    
    for(let i=0;i<number.length;i++){
        let temp = number[i];
        
        while(k>0&&stk[stk.length-1] < temp){
            stk.pop();
            k--;
        }
        stk.push(temp);
    }
    
    if(k!==0){
        stk.splice(stk.length-k,k)
    }
    console.log(stk)
    
    
    return stk.join("");
}