정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
1 ≤ array의 길이 ≤ 100
1 ≤ array의 원소 ≤ 100
1 ≤ n ≤ 100
가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
입출력 예 #1
3, 10, 28 중 20과 가장 가까운 수는 28입니다.
입출력 예 #2
10, 11, 12 중 13과 가장 가까운 수는 12입니다.
첫번째 시도
function solution(array, n) {
let arr = []
for (let i = 0; i < array.length; i++) {
arr.push(Math.abs(array[i] - n))
}
return array[arr.indexOf(Math.min(...arr))]
}
코드 실행은 되지만 채점과정에서 걸린다. test5..
아무래도 정렬을 안해줘서 그런것 같아서 sort 메서드를 한번 실행 하게 로직을 짰다.
두번째 시도
function solution(array, n) {
let arr = [];
array.sort((a, b) => {
return a - b;
});
for (let i = 0; i < array.length; i++) {
arr.push(Math.abs(array[i] - n));
}
return array[arr.indexOf(Math.min(...arr))];
}
성공했다.
간혹가다가 1레벨보다 0레벨이 잘 안풀리는 경우가 있다.
5분컷하는 1레벨 문제가 있는가하면 20분 넘겨서 풀리는 lv0문제들이 있다.