JS repl.it 16. for 문

김형석·2022년 4월 28일
0

WECODE

목록 보기
8/33

Assignment

findSmallestElement 함수를 구현해 주세요.

  • findSmallestElementarr인자는 숫자 값으로만 이루어진 배열입니다.

  • arr 의 값들 중 가장 작은 값을 리턴 해주세요.

  • 만일 arr 가 비어있으면 0을 리턴 해주세요.

  • 예를 들어, 다음과 같은 배열이 인자(input)으로 들어왔다면 1이 리턴 되어야 합니다.

[20, 200, 23, 1, 3, 9]

내 코드

function findSmallestElement(arr) {
  if( arr.length === 0 ){
    return 0;
  }else{
    let min = arr[0]
    for( let i = 0; i < arr.length; i++ ){
      if( min > arr[i] ){
        min = arr[i];
      }
    }
    return min;
  }
}

배열의 최소값을 구하는 함수를 구현하는 문제였다.
이전에 풀어봤지만 역시 바로 풀지는 못했다. 바보인가...

if( arr.length === 0 ){
    return 0;
  }

일단 arr가 비어있으면 0을 리턴해줘야하니 arr.length가 0이면 0을 리턴해주는 if문 부터 구현했다.

다음이 문제다. 이전에 풀어봤던 기억을 끄집어내야했다. 머리를 두들겨 주자 조금씩 기억이 나기 시작한다. 배열의 모든 값을 하나씩 비교해서 제일 작은 값을 찾으면 될 것 같다. 어떻게?

else{
    let min = arr[0]
    for( let i = 0; i < arr.length; i++ ){
      if( min > arr[i] ){
        min = arr[i];
      }
    }

for문과 if문을 통해 arr[0] 부터 하나씩 비교를 해보자
min이라는 변수에 arr[0] 을 넣고 for문 안에 arr[i] 와 비교를 해준다. arr[0] 보다 작은 arr[i] 가 있다면 그 숫자가 반복문을 돌면서 변수 min에 들어가게 된다.

arr[0], arr[1] 에서 arr[0] 이 20이고 arr[1] 가 10인 경우 min이 arr[1]이 되고 반복문을 통해 arr[2] 와 비교가 될 것이다.
결국 마지막에 남는 것은 배열의 최소값이 된다.

확실한 이해를 위해 예시를 들어봤다. 최대값도 같은 방식으로 구하면 되니 일석이조이다.

profile
블로그 이사 : https://hengxi.tistory.com

0개의 댓글