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 |