자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
7개의 수가 주어지면 그중 최솟값을 출력한다.
👉 입력
첫번째 줄에 7개의 수가 입력된다.
👈 출력
첫번째 줄에 가장 작은 값을 출력한다.
💡 사용된 개념
전개연산자
배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 또는 요소로 확장한다.
const num = [1, 2, 3];
console.log(num);
console.log(...num);
// output
// [1, 2, 3]
// 1 2 3
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax
📝 풀이
<script>
function solution(arr) {
let answer;
let min = Number.MAX_SAFE_INTEGER;
for (const num of arr) {
min = min > num ? num : min;
}
answer = min;
return answer;
}
let arr = [5, 13, 7, 11, 12, 15, 17];
console.log(solution(arr));
</script>
이전 포스팅 중 최솟값을 구하는 것과 동일한 방식이다.
주어진 배열을 순회하며 값을 비교해 min의 값을 갱신하며 가장 작은 값을 찾아 answer에 저장하는 것이다.
다른 방식으로는 아래와 같이 내장함수를 이용하는 방식이 있다.
<script>
function solution(arr) {
let answer = Math.min(...arr);
// let answer = Math.min.apply(null, arr);
return answer;
}
let arr = [5, 13, 7, 11, 12, 15, 17];
console.log(solution(arr));
</script>
Math.min()은 인자를 받아 그중 가장 작은 값을 반환한다. 이때 배열은 인자로 줄 수 없다.
다시 말해 Math.min(1, 2, 3, 4, 5)는 가능하지만 Math.min(arr)은 불가능하다.
따라서 Math.min()을 사용하기 위해 전개연산자를 이용해 배열 안의 값들을 전개해 넘겨준다.
다른 방법으로는 apply()를 추가로 사용해 두번째 인자에 배열을 넘겨주는 방법도 있다. (첫번째 인자는 객체를 받기 때문에 null값을 넣어준다.)
'Algorithm > JavaScript' 카테고리의 다른 글
[basics] 10부제 (0) | 2021.12.05 |
---|---|
[basics] 홀수 합과 최솟값 (0) | 2021.12.05 |
[basics] 1부터 N까지의 합 (0) | 2021.12.05 |
[basics] 연필 개수 (0) | 2021.12.05 |
[basics] 삼각형 판별하기 (0) | 2021.12.05 |
댓글