Javascript/자바스크립트 문제
[Javascript : programmers] 특이한 정렬 (Lv.0) 💥
isfp_yykkng
2024. 8. 30. 14:03
[Javascript : programmers] 특이한 정렬 (Lv.0) 💥
문제
나의 정답 풀이
function solution(numlist, n) {
return numlist.sort((a,b)=>Math.abs(n-a) - Math.abs(n-b) || b-a);
}
n 을 기준으로 가까운 수를 정렬하는 것은 Math.abs(n-a) - Math.abs(n-b)
를 기준으로 sort하는 것이 핵심이다.
또한 이렇게 정렬했을 때 거리가 동일하면 큰 수가 더 앞으로 와야하기 때문에 앞의 조건이 0으로 거짓이라면 내림차순 정렬을 수행한다.
즉, Math.abs(n - a) - Math.abs(n - b) == 0 (false)이면 || 뒤의 조건(b - a)이 동작하도록 한다