본문 바로가기
기초다지기/JS 코딩테스트

javaScript 정수 n과 가까운 수 부터 정렬하기

by 김빵그 2023. 11. 10.

문제 

정수가 담긴 배열 numlist가 주어질 때 정수 n을 기준으로 n과 가까운 수 부터 정렬하고 거리가 같다면 더 큰 수를 앞에 오도록 리턴

나의 풀이 

function solution(numlist, n) {
   const sortedList = numlist.sort((a, b) => {
    const distA = Math.abs(n - a);
    const distB = Math.abs(n - b);

    if (distA === distB) {
      return b - a; 
    }

    return distA - distB;
  });

  return sortedList;
}
  • sort 함수를 사용해 정렬
    • distA 와 B는 n으로 부터 각 요소의 거리
    • A와 B를 비교하여 거리가 같으면 더 큰 수를 앞에 둔다 b - a 
    • 거리가 다르면 더 작은 숙서대로 정렬 a - b 

다른 풀이

function solution(numlist, n) {
  return numlist.sort((a, b) => Math.abs(a - n) - Math.abs(b - n) || b - a);
}
  • sort 이용
    • (a - n) 과 (b - n) 거리를 비교해 정렬 
    • 거리가 같으면 b - a를 반환