FrontEnd/프로그래머스

[JS] 큰 수 만들기

728x90

스택을 활용해서 구현하였다.

 

 

가장 큰 수를 만들기 위해서는 앞에서부터 값을 넣다가, 더 큰수가 나오게 되면 스택에 자기보다 큰 수가 나올떄까지 스택의 값을 없애주고 이를 카운트해주면된다.

 

만약 수를 다 뺐다면 스택에 추가만 해준다.

 

또한 해당 과정을 끝났을때 만약 제거될 수가 없다면, 수가 내림차순으로 정렬되어 있는 것이므로 맨 뒤에서부터 남은 개수만큼 잘라주면 된다.

 

 

 

function solution(number, k) {
    const stk = []
    let cnt =0
    
    for (const n of number) {
        while (stk.length && +stk[stk.length-1] < +n && cnt<k){
            stk.pop()
            cnt ++
        }
        stk.push(n)
    }
    
    for(let i =cnt ; i < k ; i++) stk.pop()
    
    return stk.join('')
    
}
728x90

'FrontEnd > 프로그래머스' 카테고리의 다른 글

[JS] 소수 찾기  (0) 2023.07.02
[JS] 조이스틱  (0) 2023.06.30
[JS] 구명 보트  (0) 2023.06.29
[JS] 오픈채팅방  (0) 2023.06.28
[JS] 후보키  (0) 2023.06.27