977. Squares of a Sorted Array 풀이 - Javascript

fgStudy·2022년 4월 2일
0

코딩테스트

목록 보기
26/69
post-thumbnail

해당 포스팅은 릿코드 977번 Squares of a Sorted Array 풀이를 다룬다. 문제 링크
코드는 javascript로 작성하였으며 투포인터로 풀었다.


문제

내림차순으로 정렬된 정수 배열 숫자가 주어지면 내림차순으로 정렬된 각 숫자의 제곱 배열을 반환한다.

예제

Input: nums = [-4,-1,0,3,10]
Output: [0,1,9,16,100]
Explanation: After squaring, the array becomes [16,1,0,9,100].
After sorting, it becomes [0,1,9,16,100].


풀이

로직

해당 문제는 투포인터를 이용해 O(n)으로 풀이할 수 있다.
input이 sorted되어 있음을 이용해 양쪽에서 값을 비교해서 하나씩 값을 넣어주면 된다.


전체 코드

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var sortedSquares = function(nums) {
    let [s, e] = [0, nums.length-1];
    const result = [];
    
    for (let i = nums.length - 1; i >= 0; i--) {
        const left = nums[s];
        const right = nums[e];
        
        if (Math.abs(left) > Math.abs(right)) {
            result[i] = Math.abs(left) ** 2;
            s++;
        } else {
            result[i] = Math.abs(right) ** 2;
            e--;
        }
    }
    
    return result;
};
profile
지식은 누가 origin인지 중요하지 않다.

0개의 댓글