[알고리즘] 제곱수 정렬

오름차순으로 정렬 되어있는 수열이 주어질 때 , 수열의 원소를 제곱하여 오름차순 정렬해 출력하는 프로그램 작성

제곱 먼저 하고 정렬할 수 있지만, 오름차순으로 정렬하라는 의미는 O(n) 안에 끝내야 한다.

function solution(arr){
  let left=0;
  let right=arr.length-1;
  let square=new Array();

  for(let i=arr.length-1;i>=0;i--){
    if(Math.abs(arr[left])>Math.abs(arr[right])){
      // left 의 절댓값이 더 큰경우
      square[i]=arr[left]*arr[left];
      left++;
    }
    else{
      square[i]=arr[right]*arr[right];
      right--;
    }
  }

  return square;
}

console.log(solution([-4,-1,0,3,10]));

좋은 웹페이지 즐겨찾기