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}`;
}