나의 풀이
function solution(arr) {
let answer = arr[0];
for (i = 1; i < arr.length; i++) {
if (answer > arr[i]) {
answer = arr[i];
}
}
return answer;
}
let arr = [5, 7, 15, 3, 2, 9, 11];
console.log(solution(arr));
첫번째 배열을 최솟값으로 정하고,
for문으로 전체 배열을 돌면서 최솟값보다 작은 배열이 있으면 그것을 최솟값을 정하도록 했다.
강사 풀이 1
function solution(arr) {
let answer,
min = Number.MAX_SAFE_INTEGER; // 안정적인 가장 큰 값
for (i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return answer;
}
let arr = [5, 7, 15, 3, 2, 9, 11];
console.log(solution(arr));
최솟값을 'Number 내장 객체'를 이용하여 '안정적인 가장 큰 값'으로 저장했다.
여기서 최솟값을 그냥 arr[0]으로 정해도 되지만 위와같이 하는 방법을 선호한다.
강사 풀이 2
function solution(arr) {
let answer = Math.min(...arr); // ...는 배열을 인자 각각으로 펼쳐줌, 최댓값은 max
// 전개연산자 안쓰려면 Math.min.apply(null, arr); 첫번째 인자: 객체(this), 두번째 인자: 배열. 근데 걍 전개연산자 쓰는걸 추천함
return answer;
}
let arr = [5, 7, 15, 3, 2, 9, 11];
console.log(solution(arr));
Math 내장 함수를 이용하여 최솟값을 구하는 방법이다.
...(전개연산자)를 이용하여 배열을 인자 각각으로 펼쳐준 뒤, 최솟값을 골라낸다.
전개연산자 대신에 Math.min.apply(객체, 배열)을 이용할 수도 있다.
하지만 전개연산자 방식을 더 선호한다.
'코딩테스트 문제풀이 > inflearn' 카테고리의 다른 글
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 7. 10부제 (0) | 2022.07.25 |
---|---|
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 6. 홀수 (feat. for...of) (0) | 2022.07.24 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 4. 1부터 N까지의 합 (0) | 2022.07.24 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 3. 연필 개수 (0) | 2022.07.24 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 2. 삼각형 판별 (0) | 2022.07.24 |