개발일기

[JavaScript] 가까운 수 본문

Algorithm

[JavaScript] 가까운 수

황대성 2024. 7. 9. 00:10
문제 설명

 

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

 

제한사항

 

  • 1 ≤ array의 길이 ≤ 100
  • 1 ≤ array의 원소 ≤ 100
  • 1 ≤ n ≤ 100
  • 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.

 

입출력 예

 

array n result
[3, 10, 28] 20 28
[10, 11, 12] 13 12

 

풀이
function solution(array, n) {
  array.sort((a, b) => a - b);
  let absArray = array.map((item) => {
    return Math.abs(n - item);
  });
  let minNum = Math.min(...absArray);
  let index = absArray.indexOf(minNum);
  return array[index];
}

 

풀이 설명

 

너무 어렵다. 문제를 봤을 때 abs를 활용하면 될거같다는 생각 말고는 그렇게 떠오른게 없었다. 그래서 검색해서 힌트를 얻었다. 한번 풀어보자.

1. 먼저 array를 sort로 정렬한다. 이것은 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 한다는 제한사항을 위해서 이다.

2. map과 abs를 사용해서 가장 가까운 수를 구한다. absArray 배열에서 크기가 가장 작은 수가 가장 가까운 값이다.

3. Math.min을 사용해서 가장 작은 수를 추출한다.

4. 추출한 값으로 absArray의 index를 구한 뒤 array의 index번째를 리턴한다.

'Algorithm' 카테고리의 다른 글

[JavaScript] 7의 개수  (0) 2024.07.11
[JavaScript] 한 번만 등장한 문자  (0) 2024.07.09
[JavaScript] 팩토리얼  (0) 2024.07.07
[JavaScript]모스부호(1)  (0) 2024.07.05
[JavaScript]진료순서 정하기  (0) 2024.07.05