JS_daily_algorithm_04

박하영·2022년 4월 22일
0

algorithm

목록 보기
8/9

문제:

내가 쓴 코드:

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(arr) {
        let answer = [],
          oddnum = 0,
          minodd = Number.MAX_SAFE_INTEGER;

        for (i = 0; i < arr.length; i++) {
          if (arr[i] % 2 != 0) {
            oddnum += arr[i];
            if (minodd > arr[i]) minodd = arr[i];
          }
        }

        answer.push(oddnum, minodd);

        return answer;
      }

      arr = [12, 77, 38, 39, 53, 92, 85];
      console.log(solution(arr));
    </script>
  </body>
</html>

 

모범 답안:

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(arr){
                let answer=[];
                let sum=0, min=Number.MAX_SAFE_INTEGER;
                for(let x of arr){
                    if(x%2===1){
                        sum+=x;
                        if(x<min) min=x;
                    }
                }
                answer.push(sum);
                answer.push(min);     
                return answer;
            }
            
            arr=[12, 77, 38, 41, 53, 92, 85];
            console.log(solution(arr));
        </script>
    </body>
</html>

 

Impressive Point & Learning Point

  1. for문 선언시에 "let x of arr" 구문을 통해 x 자체에 배열 arr[x] = x로, x값 자체를 arr의 x번째 값을 가져와 사용했다. 이 부분이 인상깊었고, 전체 코드도 보다 직관적이고 깔끔하게 볼 수 있어서 좋았던 부분이다.
  1. JS에서 "===" 와 "=="의 차이점(===의 경우에는 변수 타입까지 체크해보는 경우이다)을 알 수 있었고, 알고리즘 코드 작성시에는 전체 코드에서 둘 중에 하나의 방법으로 통일시켜주는 것이 바람직하다.

 

profile
RM_young

0개의 댓글