오름차순으로 정렬 되어있는 수열이 주어질 때 , 수열의 원소를 제곱하여 오름차순 정렬해 출력하는 프로그램 작성
제곱 먼저 하고 정렬할 수 있지만, 오름차순으로 정렬하라는 의미는 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]));