배열에서 특정 요소만 뒤로 이동하기, 자바스크립트

라용·2022년 9월 22일
0

위코드 - 스터디로그

목록 보기
52/100

위코드 코드카타를 정리한 내용입니다.

문제

주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동합니다. 원래 있던 숫자의 순서는 유지합니다.

// input 
[0,1,0,3,12]

// output
[1,3,12,0,0]

풀이

기존 배열을 포인문으로 순회하면서 0의 갯수를 카운트하고, 0이 아닌 값들은 새로운 배열에 담아줍니다. 그리고 카운트한 0의 갯수만큼 새로운 배열의 뒤에 0을 추가합니다. (push 메서드 사용)

const moveZeroes = nums => {
  let zeroNum = 0; // 0 숫자 카운트 하기
  let newNums = []; // 새로운 빈배열 생성
  
  for (let i in nums) {
    if (0 === nums[i]) { // 0이 나오면
      zeroNum += 1; // 숫자 카운트하고
    } else {
      newNums.push(nums[i]) // 0이 아닌 값을 새로운 배열에 넣는다.
    }
  }
  
  for (let i = 0; i < zeroNum; i++) { // 카운트한 0의 갯수만큼
    newNums.push(0); // 새로운 배열 뒤에 0 추가
  }
 
  return newNums;
}
profile
Today I Learned

0개의 댓글