[JS알고리즘] 최소값 구하기/ 내장함수로 최댓값, 최솟값 구하기
in Algorithm
7개의 수가 주어지면 그 숫자중 가장 작은 숫자를 구하시오
function solution(arr){
let answer, min = Number.MAX_SAFE_INTEGER;
for(let i=0; i<arr.length; i++){
if(arr[i] < min) min = arr[i];
}
answer = min;
return answer;
}
let arr = [5, 7, 1, 3, 2, 9, 11];
console.log(solution(arr))
min = Number.MAX_SAFE_INTEGER
=> 미리 아주 큰 값(정수) 으로 초기화를 시켜준다.min = arr[i];
(min은 처음에 엄청 큰 숫자로 세팅되어 있으니까) 들어오는 첫번쨰 숫자는 무조건 참이 된다
아니면 그냥 min = Number.MAX_SAFE_INTEGER
을 arr[0]
으로 설정해준다음 비교해도 상관없다
보충(내장함수로 최댓값, 최솟값 구하기)
function solution(arr){
let answer = Math.min(...arr);
answer = min;
return answer;
}
let arr = [5, 7, 1, 3, 2, 9, 11];
console.log(solution(arr))
Math.min(arr)
인 경우에 arr가 인자로 넘어와야지만 최솟값을 리턴하고 배열로 넣으면 리턴하지 않는다.그러니까
Math.min(1,3,4,5)
라고 하면 1을 리턴하지만Math.min(arr)
로 하면 리턴하지 않는다그럴때 스프레드 오퍼레이터(
...
) 를 사용하여 배열 인자를 펼쳐놓으면 인자로써 값을 넘기게 되는것이므로 최솟값을 구할 수 있다최댓값을
Math.max(...arr)
임
다른방법은
apply
를 사용하는것. 스프레드 오퍼레이터를 사용하기 싫다 한다면 apply사용하면 된다let answer = Math.min.apply(null, arr);
apply함수는 반드시 첫번째 인자로 this에 넘겨주어야 하기때문에 null을 무조건 넣어주어야 한다
inflearn 자바스크립트 알고리즘 강의 내용 =)