🍀 코딩 테스트/쉽게 배우는 JavaScript 알고리즘 입문

근사값 알고리즘

놀러와요 버그의 숲 2022. 7. 19. 22:00
728x90
반응형
// 문제: 원본 데이터 중에서 대상 데이터와 가장 가까운 값

// 근사값 알고리즘(Near Alogrithm): 가까운 값을 구한다. -> 차잇값의 절대값의 최솟값

(function () {
  // [0] Initialize
  let min = Number.MAX_SAFE_INTEGER;
  // [1] Input
  var numbers = [10, 20, 30, 27, 17]; //예상 결과 값: 27
  var target = 25; //target과 가장 가까운 값
  var near = 0;
  // [2] Process: Near
  for (let i = 0; i < numbers.length; i++) {
    var abs = Math.abs(numbers[i] - target);
    if (abs < min) {
      min = abs;
      near = numbers[i]; // 바로 numbers[i]로 찾는다. 따로 index 찾지말고
    }
  }
  // [3] Output
  console.log(target + "와/과 가장 가까운 값 " + near + "(차이: " + min + ")");
})();

먼저 나 혼자 풀었을 때는 조금 비효율적으로 푼 듯하다. 

좀 많이 달랐던 부분은 나는 빈 배열을 선언해주고 거기에 데이터를 넣은 상태로 최솟값 알고리즘을 적용했는데,

강사님은 바로 for문안에서 최솟값을 찾으셨다. 

'🍀 코딩 테스트 > 쉽게 배우는 JavaScript 알고리즘 입문' 카테고리의 다른 글

선택 정렬 알고리즘  (0) 2022.08.12
순위알고리즘  (0) 2022.07.25
최솟값 알고리즘  (0) 2022.07.19
최댓값 알고리즘  (0) 2022.07.19
평균 알고리즘  (0) 2022.07.19