또 코푼다.
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.
문제 : 주어진 배열의 수 중 주어진 정수와 가장 가까운 수를 리턴한다. 가까운 수가 두 개 이상인 경우 더 작은수를 리턴한다.
const solution = (array, n) => {
array.sort((a,b) => (a-b));
// 정수 배열을 오름차순으로 정렬한다.
let distance = Infinity;
// 배열의 값과 타겟넘버 n 과의 차이를 담을 변수 선언
let result = array[0];
// 결과 변수 선언
array.forEach((i) => {
// 배열을 순회한다.
if( Math.abs(n-i) < distance ){
// 만약에 타겟넘버에서 값을 뺀 절댓값이 distance 보다 작다면
// (차이가 같은 경우는 초기화되지 않으므로 더 작은 수가 저장된다.)
// 차이가 가장 작은 값이기 때문에 결과값과 차이를 초기화 해야 한다.
result = i;
distance = Math.abs(n-i);
}
});
return result;
// 결과 리턴
}
크기를 비교하는 방법을 잘 기억해두자