최솟값 구하기

heyj·2022년 3월 22일
0

Coding Test

목록 보기
5/15

주어진 배열에서 가장 작은 값 구하기

  • Number.MAX_SAFE_INTEGER이용

MAX_SAFE_INTEGER 상수는 9007199254740991(9,007,199,254,740,991 또는 약 9000조)의 값을 갖습니다. javascript는 IEEE 754에 기술된 배정밀도 부동소숫점 형식 숫자체계를 사용해, -(2^53 - 1)과 2^53 - 1 사이의 수만 안전하게 표현할 수 있습니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

배열을 순회하면서 가장 큰 값(min)과 비교해 더 작다면 min값을 해당 값을 바꿔주는 방식으로 풀면 됩니다.

let arr = [5, 7, 1, 3, 2, 9, 11];

function min(arr) {
  let answer, min = Number.MAX_SAFE_INTEGER;
  // console.log(min) //9007199254740991
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] < min) min = arr[i];
  }
  answer = min;
  return answer;
}

console.log(min(arr));

다른 문제풀이 방식은 Math.min(), func.apply(thisArg, [argsArray])을 이용하는 방식입니다.
(https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/apply)

function min2(arr) {
  let answer = Math.min.apply(null, arr);
  return answer;
}

console.log(min2(arr));
function min3(arr) {
  let answer = Math.min(...arr);
  return answer;
}

console.log(min3(arr));

(배정밀도, 단정밀도, 부동소수점 문제 관련은 다음 글들을 참고했습니다.https://gigglehd.com/gg/hard/5427559, https://hellvelopment.tistory.com/66)

0개의 댓글