반복문으로 최소값 구하기

DevOps 블로그·2021년 12월 2일
1

findSmallestElement 함수를 구현해 주세요.
findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 배열입니다.
arr 의 값들 중 가장 작은 값을 리턴 해주세요.
만일 arr 가 비어있으면 0을 리턴 해주세요.
예를 들어, 다음과 같은 배열이 인자(input)으로 들어왔다면 1이 리턴 되어야 합니다.
[20, 200, 23, 1, 3, 9]

사실 처음에 이 문제를 접근할 때는 어떻게 접근해야 하는지에 대해서 많은 고민을 하였다. 처음에는 인덱스 값을 하나하나 다 비교하여서(i번째 인덱스와 i+1번째 인덱스값을 비교하는 형식) 값을 찾아내는 식으로 답을 얻어내려 했었다.(나중에 이러한 방식이 sort로 가능하다는 것을 해수님 덕분에 알게되었다) 그러다가 답을 못 찾고 결국 윤국님께 도움을 요청했고 어떤 식으로 접근해야 하는지 방법을 알게 되었다.(윤국님은 Math.min으로 푸셨지만 for반복문으로 자세히 설명을 해주셨다)
우선 임의의(혹은 그냥 맨 처음 0번째 인덱스 값을) 값을 min으로 할당하고 그것을 min이라는 변수에 할당하고 이후 반복문으로 모든 배열들을 가져와서 비교하며 값을 비교하여 작은 값이 나올 경우 그것을 다시 min에 할당하는 것이 핵심이었다.


function findSmallestElement(arr) {
  let min = arr[0];

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

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

console.log(findSmallestElement([20, 200, 23, 1, 3, 9])); 
  • 결과값
profile
IT 엔지니어를 향해 살아가는, 공부하는 기록들을 모아두고 있습니다.

2개의 댓글

comment-user-thumbnail
2021년 12월 5일

대영님 한주동안 수고많으셨습니다~🌈

1개의 답글