코딩쌀롱
[LeetCode_JS] 283. Move Zeroes _array 본문
알고리즘을 다시 처음부터 시작해보려고 한다.
코드스쿼드가 끝났으니 이제 모두 내가 알아서 해야한다!
처음부터 매일매일 쌓아가보자👊🏼
문제
- input: 정수 배열 nums
- output: 0이 아닌 정수는 순서 그대로, 0만 오른쪽으로 이동한 배열
- 주의! 배열 복사하지 말고 in-place로
풀이
76ms / 93.54%
var moveZeroes = function(nums) {
let left = nums.indexOf(0);
if(left === -1) return nums;
let right = left;
for(let i = left; i < nums.length; i++) {
if(nums[right] === 0) right++;
else {
const value = nums[left]
nums[left] = nums[right]
nums[right] = value
left++;
right++;
}
}
return nums;
};
인덱스를 가리키는 포인터를 left, right 두 개를 만든다.
left 포인터는 0을 가리키고, right 포인터는 0이 아닌 정수를 가리킨다.
left, right의 수를 서로 바꿔주면서 포인터 인덱스 바꿔주고 계속 진행.
코드없는 프로그래밍 영상을 봤어서 쉽게 풀 수 있었다.
참고📚
유튜브 - 코드없는 프로그래밍 moveZeroes
'개발공부' 카테고리의 다른 글
[LeetCode_JS] 75. Sort Colors _array (0) | 2021.07.18 |
---|---|
[LeetCode_JS] 724. Find Pivot Index _array (0) | 2021.07.17 |
기술 아티클 읽고 메모📚_7월 (0) | 2021.07.07 |
[React] selectorFamily, useRecoilValueLoadable (0) | 2021.06.25 |
Comments