배열에서 홀수 찾기

배열에서 홀수를 찾고, 홀수 중 가작 작은 수와 홀수들의 합 구하기

return할 answer에 sum, min 기본 값을 할당합니다.
최솟값은 앞선 문제와 같이 Number.MAX_SAFE_INTEGER를 이용한 방식을 활용하겠습니다.

% 연산자는 나머지 값을 반환합니다. 2로 나눈 나머지 값이 1이면 홀수이고 0이면 짝수이므로 조건문으로 홀수를 찾아 빈 배열에 push해 주면 됩니다.

새로운 배열을 돌며 더해줘서 sum을 구하고, 최솟값을 찾는 로직을 구현합니다.

let oddnumber = [12, 77, 38, 41, 53, 92, 85];

function odd1(oddnumber) {
  let answer = { sum: 0, min: Number.MAX_SAFE_INTEGER };
  let newArr = [];
  for (let i of oddnumber) {
    if (i % 2 === 1) {
      newArr.push(i);
    }
  }
  for (let a = 0; a < newArr.length; a++) {
    answer.sum += newArr[a];
  }

  for (let j = 0; j < newArr.length; j++) {
    if (newArr[j] < answer.min) answer.min = newArr[j];
  }

  return answer;
}

console.log(odd1(oddnumber));

아래는 강사님의 문제풀이 방식입니다.
위에 짠 코드보다 훨씬 간결합니다ㅠㅠ

function odd2(oddarr) {
   let answer = [];
   let sum = 0,
     min = Number.MAX_SAFE_INTEGER;
   for (let x of oddarr) {
     if (x % 2 === 1) {
       sum += x;
       if (x < min) min = x;
     }
   }
   answer.push(sum);
   answer.push(min);
   return answer;
}

console.log(odd2(oddnumber));

좋은 웹페이지 즐겨찾기