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]));
대영님 한주동안 수고많으셨습니다~🌈