https://school.programmers.co.kr/learn/courses/30/lessons/120880
function solution(numlist, n) {
let result = []
result = numlist.sort((a, b) => {
const [numA, numB] = [Math.abs(a - n), Math.abs(b - n)];
if(numA === numB){
return b - a;
}
return numA - numB;
})
return result;
}
function solution(numlist, n) {
return numlist.sort((a, b) => Math.abs(a - n) - Math.abs(b - n) || b - a);
}
우선 문제를 읽어보면 원소 n을 기준으로 가까운 순서대로 정렬한 배열이면서, 내림차순 정렬입니다. 따라서 const[numA, numB] = [Math.abs(a - n), Math.abs(b - n)]을 통해 각 거리값을 구한 후 만약 numA === numB가 같다면 b - a를 통해 내림차순 정렬로 return합니다. 아니라면 numA - numB를 통해 값을 구합니다.
sort((a, b) => b - a); 내림차순
sort((a, b) => a - b); 오름차순