728x90
# 문제
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
# 답안
// 1. 입력: array -> 정수 배열 [1,2,3] 같은거, n -> 정수 1,2,3 같은거
// 2. 출력: n과 가장 가까운 수
// let closest 초기값을 array[0]으로 설정
// i를 1부터 반복문 돌리면서 Math.abs(n-array[i])과 Math.abs(n-array[0])를 비교
// 만약에 새로운게 더 작으면, 그걸로 업데이트
// 절대값이 같으면 Math.min()을 통해 비교
function solution(array, n) {
let closest = array[0];
for (let i = 1; i < array.length; i++) {
if (Math.abs(n - array[i]) < Math.abs(n - closest)) {
closest = array[i];
} else if (Math.abs(n - array[i]) === Math.abs(n - closest)) {
closest = Math.min(array[i], closest);
}
}
return closest;
}
# 인사이트
// Math.abs() 함수는 주어진 숫자의 절대값을 반환하는 자바스크립트의 내장 함수
// Math.min()은 주어진 숫자들 중에서 가장 작은 값을 반환하는 자바스크립트의 내장 함수
// 이 함수는 숫자들을 매개변수로 받아들여 그 중 가장 작은 값을 반환
// Math.min() 함수는 배열을 인수로 받지 않는다.
// 따라서 배열을 사용할 경우 아래와 같이 전개 연산자(...)를 사용하여 배열의 각 요소를 개별적인 인수로 전달해야함
// const numbers = [4, 2, 7, 1];
// console.log(Math.min(...numbers));
728x90
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 67 - 한 번만 등장한 문자) (0) | 2024.04.04 |
---|---|
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 66 - 진료 순서 정하기) (0) | 2024.04.04 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 64 - 숨어있는 숫자의 덧셈 (2)) (0) | 2024.04.02 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 63 - 모스부호 (1)) (0) | 2024.02.21 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 62 - A로 B 만들기) (0) | 2024.02.21 |