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

Kyle·2020년 10월 24일
1

problem solving

목록 보기
3/36

스택을 이용해서 해결한 문제!

12번 케이스가 해결이 안돼 질문하기의 도움을 받아 '999' 2 일 때 '9'가 되는 케이스를 해결해 완성!

문제 : 큰 수 만들기

해결방법

  1. 빈 스택 array를 생성해서 (이곳에 차곡차곡 답을 넣을예정)
  2. stack이 차있고 && k(제거가능 횟수)가 남아있고 && 스택의 마지막 값이 for문의 x(지금 값)보다 작다면
    --> stack.pop() , k-=1
    그리고 stack.push(x)
  3. 차감 횟수가 남아있다면 스택의 뒷부분을 그만큼 잘라준다.

코드

function solution(number, k) {
    let answer = number.split('')
    answer = answer.map((v)=>parseInt(v,10))
    let stack =[]    
    for(let x of answer){
        while (stack && k>0 && stack[stack.length-1]<x){
            stack.pop()
            k-=1
        }
        stack.push(x)
    }
    if (k!==0){
        stack = stack.slice(0,stack.length-k)
    }
    return stack.join('');
}
profile
Kyle 발전기

0개의 댓글