[알고리즘] 홀수 합과 최솟값 구하기

hoonie·2021년 7월 26일
0

알고리즘

목록 보기
2/15
post-thumbnail
post-custom-banner

문제

7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최소값을 찾는 프로그램을 작성하세요.
예를들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은 77 + 41 + 53 + 85 = 256 이 되고,
41 < 53 < 77 < 85 이므로 홀수들 중 최소값은 41이 된다.
▣ 입력설명
첫 번째 줄에 자연수 7개가 주어진다. 주어지는 자연수는 100보다 작다. 홀수가 한 개 이상 반드시 존재한다.

▣ 출력설명

▣ 입력예제 12 77 38 41 53 92 85

▣ 출력예제 256 41(합, 최소값)


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

        for (let i of array) {
          if (i % 2 === 1) {
            sum += i;
            if (min > i) {
              min = i;
            }
          }
        }
        let answer = [sum, min];

        return answer;
      }

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

코드설명

  • 우선 입력값을 배열로 받고, 합과 최솟값을 선언 및 초기화 해줍니다. 그리고 배열로 만든 입력값을 반복문 돌리고 i % 2 === 1 이라는 조건을 주어 홀수만 들어오게한다음 값을 다 더해주며, 또 그 안에서는 현재 Min의 값과 for 로 돌아가고 있는 i 를 비교해 조건이 성립되면 min에 재할당을 해줍니다.
post-custom-banner

0개의 댓글