프로그래머스 (JS)/Lv. 0

[Programmers] 120890번 - 가까운 수

hodo- 2023. 3. 4. 14:10

Problem

문제 보기

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.


Solution

function solution(array, n) {
   let arr = array.sort((x, y) => x - y)
   const a = arr.map(x => Math.abs(n - x))
   const aMin = a.indexOf(Math.min(...a))
   return arr[aMin]
}

처음에 다른 코드로 입력했을 때 케이스 5번이 오류나서 확인해보니

  • 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.

조건이 있었다. 이 조건에 해당하는 코드로 다시 작성해보니 통과했다.

다른 사람 코드 확인 중에 깔끔한 걸 발견했다!
sort()의 다중조건도 처음 알게됐다.

function solution(array, n) {
    array.sort((a,b) => Math.abs(n - a) - Math.abs(n - b) || a - b);
    return array[0];
}