.Zzumbong

[leetCode/JS] 905. Sort Array By Parity 본문

coding test/leetCode

[leetCode/JS] 905. Sort Array By Parity

쭘봉 2023. 9. 28. 13:14

난이도 [😊 ] Easy

문제 설명

Given an integer array nums , move all the even integers at the beginning of the array followed by all the odd integers. Return any array that satisfies this condition.

정수 배열 nums 가 주어지면 배열의 앞부분으로 짝수 정수를 모두 이동시키고 그 뒤에 홀수 정수를 이동해라.

 

입출력 예

Example 1:

Input: nums = [3,1,2,4]
Output: [2,4,3,1]
Explanation: The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

 

Example 2:

Input: nums = [0]
Output: [0]

 

Constraints

  • 1 <= nums.length <= 5000
  • 0 <= nums[i] <= 5000

 


 

내 솔루션

조건을 보면 어떠한 정렬이 없다. 짝수가 홀수보다 앞에 있으면 된다길래 1초만에 풀었다.

var sortArrayByParity = function(nums) {
    return nums.sort((a, b) => b%2 === 0 ? 1 : -1)
};

 

다른 사람 솔루션

two point looping으로 O(n)으로 해결한 솔루션이다.

sort는 워낙 최적화가 잘되어 있어서 그런가 아이디어가 재미있지만 내 솔루션보단 조금 오래 걸리긴한다.

var sortArrayByParity = function(nums) {
    let oddIdx = 0;
    
    for (let i = 0; i < nums.length; i++) {
        if (nums[i] % 2 === 0) {
            [nums[i], nums[oddIdx]] = [nums[oddIdx], nums[i]];
            oddIdx++;
        }
    }
    
    return nums;
};

 

감상평

오늘의 leetcode 문제는 javascript만 생각하면 쉬운 문제다.

Comments