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)