[JS알고리즘] 최소값 구하기/ 내장함수로 최댓값, 최솟값 구하기



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))

  1. min = Number.MAX_SAFE_INTEGER => 미리 아주 큰 값(정수) 으로 초기화를 시켜준다.
  2. min = arr[i]; (min은 처음에 엄청 큰 숫자로 세팅되어 있으니까) 들어오는 첫번쨰 숫자는 무조건 참이 된다

아니면 그냥 min = Number.MAX_SAFE_INTEGERarr[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))
  1. Math.min(arr) 인 경우에 arr가 인자로 넘어와야지만 최솟값을 리턴하고 배열로 넣으면 리턴하지 않는다.

    그러니까 Math.min(1,3,4,5) 라고 하면 1을 리턴하지만 Math.min(arr) 로 하면 리턴하지 않는다

    그럴때 스프레드 오퍼레이터(...) 를 사용하여 배열 인자를 펼쳐놓으면 인자로써 값을 넘기게 되는것이므로 최솟값을 구할 수 있다

    최댓값을 Math.max(...arr)


  1. 다른방법은 apply 를 사용하는것. 스프레드 오퍼레이터를 사용하기 싫다 한다면 apply사용하면 된다

    let answer = Math.min.apply(null, arr);
    

    apply함수는 반드시 첫번째 인자로 this에 넘겨주어야 하기때문에 null을 무조건 넣어주어야 한다



inflearn 자바스크립트 알고리즘 강의 내용 =)




© 2018. by sora

Powered by sora