[프로그래머스] 특이한 정렬

stella·2023년 1월 19일
0

Algorithm

목록 보기
20/40
post-thumbnail

문제

정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요.


풀이

  • n과 numlist 원소의 값 거리차 계산
  • 거리가 같다면 더 큰 수를 우선 배치
  • 거리가 다르다면 거리별 오름차순 정렬
function solution(numlist, n) {
    return numlist.sort((a,b) => {
        const [aGab, bGab] = [Math.abs(a-n), Math.abs(b-n)];
        
        if (aGab === bGab) return b-a;
        return aGab-bGab;
    })
}
profile
Frontend Engineer

0개의 댓글