홀수만 뽑아 합과 최솟값 구하기
나의 풀이
function solution(arr) {
let answer = [],
odd = [],
oddSum = 0,
oddMin = Number.MAX_SAFE_INTEGER;
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 1) {
odd.push(arr[i]);
}
}
for (let i = 0; i < odd.length; i++) {
oddSum += odd[i];
if (odd[i] < oddMin) {
oddMin = odd[i];
}
}
answer.push(oddSum);
answer.push(oddMin);
return answer;
}
arr = [12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));
먼저 배열을 다 돌아 홀수만 뽑아내 배열로 만들고,
뽑아낸 홀수 배열로 합과 최솟값을 구하였다.
강사 풀이
function solution(arr) {
let answer = [];
let sum = 0,
min = Number.MAX_SAFE_INTEGER;
for (let x of arr) {
// x가 각 배열 인덱스를 받아옴
if (x % 2 === 1) {
sum += x;
if (x < min) {
min = x;
}
}
}
answer.push(sum);
answer.push(min);
return answer;
}
arr = [12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));
for...of문을 이용하였다.
이는 반복 가능한 객체에 대해 반복한 후, 각 개별 값에 대해 루프를 실행한다.
홀수를 찾고, 그 홀수로부터 합과 최솟값을 바로 구하였다.
만약 최솟값 비교할때,
최솟값을 arr[0]를 두고하면 arr[0]이 짝수일 수 있으므로 문제가 생긴다.
따라서 맨 처음 최솟값을 정할 때 Number 내장 객체를 이용하는게 좋다.
'코딩테스트 문제풀이 > inflearn' 카테고리의 다른 글
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 8. 일곱난쟁이 (0) | 2023.01.04 |
---|---|
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 7. 10부제 (0) | 2022.07.25 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 5. 최솟값 구하기 (feat. Math, 전개구문/apply) (0) | 2022.07.24 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 4. 1부터 N까지의 합 (0) | 2022.07.24 |
[인프런] Node.js / 섹션1 - 기본문제 풀이 / 3. 연필 개수 (0) | 2022.07.24 |