[기본문제] 홀수 찾기

7개의 자연수 중, 홀수를 모두 골라 합을 구하고, 고른 홀수들 중 최솟값을 찾아라.


나의 풀이 방법

function oddFind(...arr) {
  let oddArray = [];
  let sum = 0;
	
  // 홀수 찾기
  arr.forEach((number) => {
    if(number % 2 != 0) oddArray.push(number)
  });
	
  // 합 구하기
  oddArray.forEach((oddNum) => {
    sum += oddNum
  });

  return [sum, Math.min(...oddArray)];
}

console.log(oddFind(12, 77, 38, 41, 53, 92, 85));
function oddFind2(...arr) {
  let oddArray = [];
  let sum = 0;

  arr.forEach((number) => {
    if(number % 2 != 0) { 
      sum += number // 합 구하기
      oddArray.push(number) // 홀수 찾기
    }
  });

  return [sum, Math.min(...oddArray)];
}

console.log(oddFind2(12, 77, 38, 41, 53, 92, 85));

한 번의 반복문 안에서 합 구하기와 홀수 찾기, 두 가지를 수행할 수 있도록 코드를 수정하였다.


답안

function solution(arr) {
  let answer = [];
  let sum = 0, min = Number.MAX_SAFE_INTEGER;

  for(let x of arr) {
    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));

좋은 웹페이지 즐겨찾기