-
[TIL] Today I Learned : for문 - findSmallestElement 함수프론트엔드 개발자가 될거야./js 2022. 6. 22. 20:38
많이 공부했다고 생각했는데...
문제 푸는데 많이 막혔다!
먼저, for문에 대해 알아보자.
for문
for 문을 사용하면 코드를 원하는 만큼 반복시킬 수 있다.
실행 조건에 따라 언제부터 언제까지 반복하게 될 것이라고 알려주면 된다.
반복문 내의 조건문
반복문과 조건문은 함께 많이 쓰인다. 잘 이해해두어야 한다!
예시를 함께 보자.
const home = "대전"; let cities = ["서울", "대전", "대구", "대전", "광주", "대전"]; for (let i = 0; i < cities.length; i++) { if (cities[i] === home) { console.log("아, "+ cities[i] +" 사시는군요"); } }
for (var i = 0; i*<*cities.length; i++)에서 가운데 비교연산자를 주의하자!
<= 가 아닌 < 를 사용하고 있다.
그 이유는?
배열의 길이는 6이므로 6번의 반복문이 실행되어야 한다.
그런데 <= 를 사용하면 i 는 0,1,2,3,4,5,6 까지 실행되어 총 7번의 반복문을 실행하게 되는 것이다!
과제로 나왔던 문제...
몇시간을 고민했는지 모른다.. 쥬르륽...😂
👀 문제 👀
findSmallestElement 함수를 구현해 주세요.
- findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 배열입니다.
- arr 의 값들 중 가장 작은 값을 리턴 해주세요.
- 만일 arr 가 비어있으면 0을 리턴 해주세요.
- 예를 들어, 다음과 같은 배열이 인자(input)으로 들어왔다면 1이 리턴 되어야 합니다.
- [20, 200, 23, 1, 3, 9]
❌내가 생각했던 풀이❌
arr 의 값들 중 가장 작은 값을 리턴해주라고 해서
옆에 있는 값들이랑 비교하면 되겠다! 해서
arr[i] > arr[i+1] 어쩌고 저쩌고 해서 만들어보려고 했지만
도무지 감이 잡히지 않았다..
✍🏻옳은 풀이 방법✍🏻
function findSmallestElement(arr) { // your code here if (arr.length === 0) { return 0 } else { let min = arr[0]; // 임의로 최솟값을 설정해주자!!! for (let i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } else { min = arr[0]; } } return min; } }
let min = arr[0]; 이렇게 임의로 최솟값을 설정해서
배열의 요소들과 하나하나 비교해주면서
min보다 더 작으면 그 요소로 최솟값을 재할당해주는 방법이다.
예를 들어 arr 가 [20, 200, 23, 1, 3, 9] 라고 치자.
let min = arr[0] 에서 일단 min = 20 으로 설정해두었다.
근데 반복하다가 i = 3이 되었을 때,
arr[3] 즉, 1 은 현재 min인 20보다 작으니
if문이 true가 되어
min = arr[3] = 1 로 재할당해주는 것이다.
이렇게하면 문제를 풀 수 있다........!!!!!
어렵지만 뿌듯하다 ㅎ ㅡ ㅎ
'프론트엔드 개발자가 될거야. > js' 카테고리의 다른 글
[TIL] Today I Learned : 배열 요소 추가, 제거 - divideArrayInHalf 함수 (0) 2022.06.23 [TIL] Today I Learned : 수학표현식, 논리연산자, 가위 바위 보 게임 함수 만들기(rockPaperScissors 함수) (0) 2022.06.23 [노마드 코더] 바닐라 JS로 크롬 앱 만들기 (0) 2022.06.19 JS함수 정리 - 화살표함수, 즉시실행함수, 호이스팅, 타이머함수, 콜백 (0) 2022.06.14 자바스크립트 라이브러리 정리 (0) 2022.06.13