반응형
문제
나의 풀이
처음에 나름 풀이를 해보았는데, test케이스만 통과되고 실제 채점을 전부 실패가 떠서 인터넷 검색을 해서 찾아보았다.
다른이의 풀이
위 블로그에서 가져온 코드입니다 :)
친절한 설명이 필요하시다면 읽어보시는걸 추천드립니다!
function solution(number, k) {
let stack = [];
for(let i = 0 ; i < number.length;i++){
let value = number[i];
while(k > 0 && stack[stack.length-1] < value){
stack.pop()
k--
}
stack.push(value)
}
stack.splice(stack.length-k,k)
return stack.join("")
}
처음에 while문에 무한 루프 되는거 아닌가? 했지만, stack이 비어있을때 stack[stack.length-1]
이 undefine이 나오고, undefine은 NaN 취급, 비교 연산자를 하면 무조건 false가 나오기에 문제가 없었다.
그리고 마지막에 pop이 k보다 적게 되었을 경우 splice를 통해 남은 k만큼 지워주었다.
상당히 간단하게 풀 수 있는데 나는 왜 이거에 2배되게끔 코드를.. 공부 열심히 합시다..👼
참조 사이트
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] level3. 디스크 컨트롤러 (javascript) (0) | 2021.11.07 |
---|---|
[프로그래머스] level1. 위클리 챌린지 2주차 (javascript) (0) | 2021.09.02 |
[프로그래머스] level2. [3차] 압축 (javascript) (0) | 2021.08.31 |
[프로그래머스] level2. 구명보트 (javascript) (0) | 2021.08.26 |
[프로그래머스] level2. [3차] 파일명 정렬 (javascript) (0) | 2021.08.18 |