코드카타 #14
문제
주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜주세요. 원래 있던 숫자의 순서는 바꾸지 말아주세요.
(새로운 배열을 생성해서는 안 됩니다.)
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
풀이
let nums = [0,1,0,3,12];
const moveZeroes = nums => {
for(let i = nums.length-1; i >= 0; i--){
if(nums[i]===0){
nums.push(nums.splice(i, 1)[0]);
console.log(nums)// [ 0, 1, 3, 12, 0 ],[ 1, 3, 12, 0, 0 ]
}
}
return nums; // [ 1, 3, 12, 0, 0 ]
};
풀이 과정
- 반복문을 뒤에서 부터 돌려 줍니다
- 반복문을 돌려 나온
nums[i]
가 0일때 조건문을 만들어줍니다
- 위에 조건이 트루일때
nums
에 splice
메서드로 0을찾아 잘라내고 push
메서드로 뒤쪽으로 넣어줍니다
nums
를 반환해 줍니다.
회고
let nums = [0,1,0,3,12];
const moveZeroes = nums => {
for(let i = nums.length-1; i >= 0; i--){
if(nums[i]===0){
nums.push(nums.splice(i, 1)[0]);
console.log(nums)// [ 0, 1, 3, 12, 0 ],[ 1, 3, 12, 0, 0 ]
}
}
return nums; // [ 1, 3, 12, 0, 0 ]
};
nums[i]
가 0일때 조건문을 만들어줍니다nums
에 splice
메서드로 0을찾아 잘라내고 push
메서드로 뒤쪽으로 넣어줍니다nums
를 반환해 줍니다.한동안 코드카타에 나오느 문제들을 풀지 못하다가 요번 문제는 그나마 풀만 했던 문제였던거 같습니다. 원래는 반복문을 뒤에서말고 앞에서부터 돌렸었는데 테스트 2개중 하나만 통과를하게 되어서 뒤에서부터 돌려 보니 전부 통과를 하게되었는데 아직도 왜그런지 이유를 찾지 못해 풀다만 문제 인거 같은 느낌이 드는 문제였다.
Author And Source
이 문제에 관하여(코드카타 #14), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@xodid157/코드카타-14저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)