프로그래머스 (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];
}