천진난만 코딩 스토리

1-5. 최솟값 구하기 본문

코딩테스트.js/자바스크립트 알고리즘 문제풀이 입문 (인프런)

1-5. 최솟값 구하기

Wisdom_1104 2022. 12. 21. 00:27

 

-코드 1-

function solution(arr) {
    let answer,
      min = Number.MAX_SAFE_INTEGER;
    for (let i = 1; i < arr.length; i++) {
      if (arr[i] < min) min = arr[i];
    }
    answer = min;
    return answer;
  }

  let arr = [5, 3, 7, 11, 2, 15, 17];
  console.log(solution(arr));

 

-풀이과정-

let arr = [5, 3, 7, 11, 2, 15, 17]; 를 하여

입력되는 수를 배열함.

 

function solution(arr) 를 하여

배열을 불러오고


let answer, min = Number.MAX_SAFE_INTEGER; 를 하여

answer를 만들고 

min = Number.MAX_SAFE_INTEGER 를 하여

매우 큰 숫자를 저장한 min을 만듬.

 

for (let i = 1; i < arr.length; i++) 를 하여

let i = 1 을 하여 i에 1을 넣어주고

i < arr.length 를 하여 i가 arr의 배열의 길이보다 적을 때에만 반복하게 함.

(length는 배열의 길이를 말하는 함수)

i++ 를 하여 i가 1씩 늘어나면서 반복하게 함.

 

if (arr[i] < min) min = arr[i]; 를 하여

만약 arr[i]가 min보다 작으면 min 에 arr[i]를 저장함.

(첫 min은 터무니없이 큰 숫자이므로 무조건 arr[0]의 숫자가 저장됨)


answer = min; 을 하여

answer 에  최종 min을 저장하고

return answer; 을 하여

값을 업데이트하고
console.log(solution(arr)); 를 하여

answer = min이 된 solution(arr)을 출력함.

-코드 2-

 function solution(arr) {
    let answer,
      min = arr[0];
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] < min) min = arr[i];
    }
    answer = min;
    return answer;
  }

  let arr = [5, 3, 7, 11, 2, 15, 17];
  console.log(solution(arr));

-풀이과정-

다른 코드는 위의 코드와 같지만

let answer, min = arr[0]; 를 하여

min에 터무니없는 숫자 대신 arr[0]의 숫자를 넣고


for (let i = 0; i < arr.length; i++) 를 하여
let i = 1 대신 let i = 0을 하면 같은 값이 출력됨.

 

두 코드 중 어떤 코드를 사용해도 상관없음.

 

-코드 3-

  function solution(arr) {
    let answer = Math.min(...arr);
    return answer;
  }

  let arr = [5, 3, 7, 11, 2, 15, 17];
  console.log(solution(arr));

-풀이과정-

다른 코드는 위의 코드들과 같이 풀이하면 되고

다른 점은

Math.min 이라는 내장함수를 사용하여 최솟값을 구함.

Math.min는 1,3,6... 등 인자만 받기 때문에

Math.min(arr)를 하면 인자가 아닌 arr은 최솟값을 구할 수 없음.

그렇기에 Math.min(...arr) 를 하여 배열을 풀어서 인자로 받을 수 있도록 함.

'코딩테스트.js > 자바스크립트 알고리즘 문제풀이 입문 (인프런)' 카테고리의 다른 글

1-7. 10부제  (0) 2022.12.24
1-6. 홀수  (0) 2022.12.24
1-4. 1부터 N까지 합 출력하기  (0) 2022.12.20
1-3. 연필 개수  (0) 2022.12.19
1-2. 삼각형 판별하기  (0) 2022.12.18