정수 배열 array
와 정수 n
이 매개변수로 주어질 때, array
에 들어있는 정수 중 n
과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
array
의 길이 ≤ 100array
의 원소 ≤ 100n
≤ 100array | n | result |
---|---|---|
[3, 10, 28] | 20 | 28 |
[10, 11, 12] | 13 | 12 |
입출력 예 #1
입출력 예 #2
※ 공지 - 2023년 3월 29일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
function solution(array, n) {
let m = array.sort((a,b)=>a-b).map(e=>Math.abs(e-n));
return array.sort((a,b)=>a-b)[m.indexOf(Math.min(...m))];
}
다른풀이
// sort()는 가히 예술이다.
function solution(array, n) {
array.sort((a,b) => Math.abs(n - a) - Math.abs(n - b) || a - b);
return array[0];
}
function solution(array, n) {
return array.reduce((a,c)=> Math.abs(a-n) < Math.abs(c-n) ? a : Math.abs(a-n) === Math.abs(c-n) ? Math.min(a, c) : c);
}
let solution=(r,n)=>r.map(e=>[e,Math.abs(e-n)]).sort((a,b)=>a[1]-b[1]||a[0]-b[0])[0][0]