
function solution(array, n) {
array.sort((a, b) => a-b); // 오름차순으로 정렬
let min = 0;
let minIndex = 0;
let answer = [];
for (item of array) {
answer.push(Math.abs(n-item)) // N과 각 배열 요소들의 차이를 answer 배열에 저장
min = Math.min(...answer); // answer 배열 중 가장 작은 값을 min 변수에 저장
minIndex = answer.indexOf(min) // 가장 작은 값(min)의 index를 저장
}
return array[minIndex] // 정렬된 원본 배열에서 해당 index를 가진 값을 return
}
오름차순으로 정렬하는 이유는 n-item이 같은 경우도 생기기 때문에
예를들어 N이 13일때
13 - 11 = 2 (절댓값)
13 - 15 = 2 (절댓값)
이런경우가 생긴다.
그래서 처음에 숫자를 오름차순으로 정렬해준것.
indexOf는 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하기 때문에 오름차순으로 정렬하면 차이가 같아도 더 작은 숫자의 인덱스를 찾을 수 있게된다.