https://www.acmicpc.net/problem/2576
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().trim()
.split('\n').map(Number)
const solution = input => {
let odd = []
input.forEach(el => {
if(el % 2 === 1){
odd.push(el)
}
})
return odd.length === 0 ?
-1 : odd.reduce((a,b)=>a+b,0) + '\n' + Math.min(...odd)
}
console.log(solution(input))
입력된 숫자 배열 input를 순회하여 홀수면 배열 odd에 추가하고
순회를 마치고 배열 odd가 비어있으면 홀수가 없으므로 -1 반환
아니면 합고 최소값을 반환한다.
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().trim()
.split('\n').map(Number).filter(el => el % 2 === 1)
const solution = odd => {
if(odd.length === 0) return -1
const min = odd.reduce((prev, cur) => prev > cur ? cur : prev);
const sum = odd.reduce((a,b) => a+b, 0)
return sum + '\n' + min
}
reduce로 배열의 최소값, 최대값 구하기
// 최소값 구하기 const min = array.reduce((previous, current) => previous > current ? current : previous); // 최대값 구하기 const max = array.reduce((previous, current) => previous > current ? previous : current);
선언형 프로그래밍, 절차형 프로그래밍