백준-Node.js-2576, 홀수

송철진·2023년 3월 7일
0

백준-Node.js

목록 보기
48/69

문제

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 반환
아니면 합고 최소값을 반환한다.

풀이2

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);

선언형 프로그래밍, 절차형 프로그래밍

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글