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];
}
'프로그래머스 (JS) > Lv. 0' 카테고리의 다른 글
[Programmers] 120835번 - 진료순서 정하기 (0) | 2023.03.04 |
---|---|
[Programmers] 120887번 - k의 개수 (0) | 2023.03.04 |
[Programmers] 120842번 - 2차원 배열 (0) | 2023.03.03 |
[Programmers] 120848번 - 팩토리얼 (0) | 2023.03.03 |
[Programmers] 120886번 - A로 B 만들기 (0) | 2023.03.03 |