(알고리즘) 홀수

호두파파·2022년 1월 13일
0

알고리즘 연습

목록 보기
22/60


7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하세요.
예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85 이므로 그 합은 256이 되고, 홀수들 중 최솟값은 41이 된다.

입력 설명

첫 번째 줄에 자연수 7개가 주어진다. 주어지는 자연수는 100보다 작다. 홀수가 한 개 이상 반드시 존재한다.

출력 설명

첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 최소값을 출력한다.

입력예제

12 77 38 41 53 92 85

출력예제

256
41


분기처리와 for문, reduce 함수를 이용해서 문제를 풀 수 있다.
분기처리를 위해 if문을 사용해서 빈 배열에 조건을 맞는 수(홀수)를 넣어줬다.
forEach를 이용해 가장 적은 수를 구하고, reduce메소드로 총합을 구해줬다.
조금 더 코드를 간결하게 작성할 수 있지만, 연습차원에서 늘여썼다.

function solution(N) {
  let answer;
  const tempArr = [];
  N.forEach((num) => {
    num % 2 === 1 ? tempArr.push(num) : null;
  });
  const minNum = tempArr.sort((a, b) =>  a - b)[0];
  const result = tempArr.reduce((sum, currentValue) => {
    return sum + currentValue
  }, 0);
  return answer = `${result} ${minNum}`;
}


profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글