CodingTest/LeetCode

[LeetCode] 905. Sort Array By Parity, Easy

뜸부깅 2025. 3. 11. 11:25
반응형

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