반응형
1. 문제
- 배열 nums가 주어질 때, 짝수를 앞으로 홀수는 뒤로 미뤄서 배열을 반환하라.
- 앞쪽에 짝수, 뒤에 홀수가 모여있기만 하면 된다. 순서는 상관없다.
- 추가 배열을 사용하지 마라.
2. 해결
function sortArrayByParity(nums: number[]): number[] {
let pointer = 1;
let i = 0;
while(pointer <= nums.length -1) {
const isEven: boolean = nums[i] % 2 === 0;
const isTargetEvne : boolean = nums[pointer] % 2 === 0;
if(!isEven && isTargetEvne) {
const temp = nums[i];
nums[i] = nums[pointer];
nums[pointer] = temp;
i++;
} else if(isEven) i++;
pointer++
}
return nums;
};
- 대체로 이렇게 자리 바꾸는 문제는 투포인터를 써서 현재 위치를 가리키고, 타겟 포인터를 둬서 조건에 맞는지 판별한 후 교환 연산을 수행하면 된다.
비슷한 문제
https://fbtmdwhd33.tistory.com/309
[LeetCode] 283. Move Zeroes, Easy
1. 문제배열 nums가 주어질 때, 모든 0을 오른쪽에 몰아넣어라.추가 배열을 생성하지 마라.2. 해결/** Do not return anything, modify nums in-place instead. */function moveZeroes(nums: number[]): void { let pointer = 1; // 0 위
fbtmdwhd33.tistory.com