본문 바로가기
Coding Test/LeetCode

[Javascript] LeetCode 977. Squares of a Sorted Array

by Chaedie 2022. 7. 11.
728x90

[Javascript] (LeetCode Easy) 977. Squares of a Sorted Array

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var sortedSquares = function(nums) {

    const answer = [];
    let lt = 0;
    let rt = nums.length - 1;
    let idx = nums.length - 1;
    while (lt <= rt) {
        let ltSqr = nums[lt] ** 2;
        let rtSqr = nums[rt] ** 2;
        if (ltSqr > rtSqr) {
            answer[idx] = ltSqr;
            lt++;
        } else {
            answer[idx] = rtSqr;
            rt--;
        }
        idx--;
    }

    return answer;
};
  • 단순히 모두 제곱해서, Sort() 해도 풀린다.
  • 하지만 문제 하단에 그 방법은 너무 단순 순회니까 O(n)으로 줄일수 있겠냐고 물어본다. 그래서 위와 같이 Two Pointer 접근으로 푸는게 모범 답안이다.

배운 점, 느낀 점

  • while() 사용하는게 어색하고 헷갈리는데, 그렇기에 의도적으로 while로 풀어야겠다.

댓글