본문 바로가기

공부/Java script

[알고리즘] 배열에서 최소값 구하기

배열에 n개의 숫자가 담겨있을때, 최솟값을 구하는 방법이다.

 

1. for문 활용하기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function test (...rest) {
    let arr = rest
    let result= arr[0];
 
    for(let i=0; i<arr.length; i++) {
    
        if(result > arr[i]){
        result = arr[i];

        }
    }
    console.log(result);
}
 
test(3,17,8,4,5,9,6,1,2,9); //1
cs

 

함수의 인자로 받을 값들을 ...rest로 하여 배열로 만든다.

결과로 보여줄 변수에 배열의 첫번째 값을 할당시키고 for문으로 값의 비교를 반복하게 한다. 

 

2. Math.min 활용하기

 

 

1
2
3
4
5
6
7
function test(...rest) {
    
    let result = Math.min(...rest);
    console.log(result);
}
 
test(3,17,8,4,5,9,6,1,2,9); //1
cs

 

Math.min 함수는 파라미터로 받은 숫자들 중에서 최소값을 구해서 리턴하는 함수이다.

min 함수에서 ...rest로 인자를 받은 것은 spread 연산자로서

객체나 배열의 원소들을 하나씩 꺼내어 펼쳐서 리턴하게된다.실제로는 Math.min(3,17,8,4,5,9,6,1,2,9) 과 동일한 것이다.

 

3. MAX_SAFE_INTEGER 활용

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function test (...rest){
 
    let arr = rest;
    let min = Number.MAX_SAFE_INTEGER;
 
    for(let i=0; i<arr.length; i++){
 
        if(min > arr[i]) {
            min = arr[i];
        }
    }
   console.log(min);
}
 
test(3,17,8,4,5,9,6,1,2,9);
cs

 

1번 예제와 같은 방식이지만 여기서는 MAX_SAFE_INTEGER을 활용했다.

Number.MAX_SAFE_INTEGER은 자바스크립트에서 안전한 최대의 정수값을 나타낸다고한다. 

 

1번 예제에서는 배열의 첫번째 값을 넣어두고 나머지 요소들의 값과 비교하였지만 여기서는 값으로 들어올 수 있는 정수중에서 최대값을 넣어두고, 값을 비교할 수 있도록 하였다.

 

알고리즘 풀이에서 MAX_SAFE_INTEGER을 사용하는 이유는 정확하게 값을 비교하기 위해서라고 한다.