<html>

<head>
  <meta charset="UTF-8">
  <title>출력결과</title>
</head>

<!-- 홀수 모두 합을 구하고, 홀수중 최솟값을 찾기 -->

<body>
  <script>
    const arr = [12, 77, 38, 41, 53, 92, 85];

    function solution(arr) {
      let sum = 0;
      let min = arr[0];
      for (const item of arr) {
        if (item % 2 == 1) {
          sum += item;
          if (min > item) min = item;
        }
      }

      return { sum, min }
    }
    console.log(solution2(arr));

    function solution2(arr) {
      let sum = 0;
      let min = arr[0];
      arr.forEach(item => {
        if (item % 2 == 1) {
          sum += item;
          if (min > item) min = item;
        }
      })

      return { sum, min }
    }

    console.log(solution2(arr));

    function solution3(arr) {
      const { sum, min } = arr.reduce(
        (acc, cur) => {
          if (cur % 2 === 1) {
            acc.sum += cur;
            if (acc.min > cur) acc.min = cur;
          }
          return acc;
        },
        { sum: 0, min: arr[0] }
      );
      return { sum, min };
    }

    console.log(solution3(arr));
  </script>
</body>

</html>

개인적으론 forEach가 맘에듭니다!

'개발공부 > 알고리즘' 카테고리의 다른 글

[Algorithm] 일곱난쟁이  (0) 2023.04.20
[Algorithm] 차량 10부제  (1) 2023.04.19
[Algorithm] 최소값 찾기 알고리즘  (0) 2023.04.18
[Algorithm] 1부터 N까지의 합 구하기  (0) 2023.04.18
[Algorithm] 연필 개수  (0) 2023.04.18

+ Recent posts