큰 수 만들기 - 프로그래머스

자몽·2022년 2월 15일
1

알고리즘

목록 보기
26/31

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

링크

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

설명

그리디 알고리즘은 현재에 충실한 알고리즘이다. 미래를 생각하지 않기때문에, 판단하는 순간을 고민해봤다.

이 문제에서는 큰 수를 만들기 위해, 각 자리가 큰 수에 적합한지 판단하는 순간이 존재한다.

이 순간을 그리디 알고리즘의 관점에서 보면, 다음과 같이 생각할 수 있다.

내 앞에 있는 수보다 작으면 탈락

따라서, now 변수에 판단할 현재 숫자를 저장해두고, 내 앞에 있는 수가 나보다 작은 경우, 해당 수를 탈락시켰다.

코드

function solution(number, k) {
    var stack = [];
    for (var i = 0; i < number.length; i++) {
        var now = number[i];

        while (k > 0 && stack[stack.length - 1] < now) {
            stack.pop();
            k--;
        }
        stack.push(now);
    }
    stack.splice(stack.length - k, k);
    var answer = stack.join('');
    
    return answer;
}
profile
꾸준하게 공부하기

0개의 댓글