최솟값 구하기

아기코딩단2·2022년 7월 22일
0
<!--wrong my solution-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과 - 섹션1-6 - 홀수</title>
    </head>
    <body>
        <script>
            function solution(arr) {
                // 주어지는 값 배열이 주어짐
                // 구해야하는 값 배열중 홀수들의 총합
                // 홀수들 중의 최솟값

                let total = 0;
                let min = 10000000;
                // 배열중 홀수들의 총합 구하기
                for (let i =0; i < arr.length; i++) {
                    if (arr[i] %2 !== 0) 
                        total = total + arr[i];
                }// end for
                return total;
                
                // 홀수들 중에서 최솟값 구하기
                for (let i = 0; i < arr.length; i++) {
                    if(arr[i] < min) 
                        min = arr[i];
                }// end for
                return min;
            }

            let arr = [1,2,3,4,5,6];

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

구하는값 입력값 모두 이해했는데 return 문을 쓰면서도 return문은 실행을 그만하고 제어권을 반납하는 건데 두개 쓸 수 있나..? 라는 생각으로 계속 짰다;;
물론 따로 실행했을 때 잘나오긴 한다;;

풀이 보니까 배열에 넣으면 되는 거였음;

<!--correct my solution-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과 - 섹션1-6 - 홀수</title>
    </head>
    <body>
        <script>
            function solution(arr) {
                // 주어지는 값 배열이 주어짐
                // 구해야하는 값 배열중 홀수들의 총합
                // 홀수들 중의 최솟값
                let answer = [];

                let total = 0;
                let min = 10000000;
                // 배열중 홀수들의 총합 구하기
                for (let i =0; i < arr.length; i++) {
                    if (arr[i] %2 !== 0) 
                        total = total + arr[i];
                }// end for
                answer.push('총합:::', total);
                
                // 홀수들 중에서 최솟값 구하기
                for (let i = 0; i < arr.length; i++) {
                    if(arr[i] < min) 
                        min = arr[i];
                }// end for
                answer.push('최솟값:::', min)
                return answer;
            }

            let arr = [1,2,3,4,5,6];

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

<!--teacher's solution-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(arr){
                let answer=[];
                let sum=0, min=1000;
                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>

for of 문 써서 인덱스로 접근안하고 사용했음 좀 더 간단해보이는 듯
선생님 답안은 for 문 안에서 다 처리해줬음!

답이 두개가 넘는 경우는 배열로 push해주자~~
배열을 탐색하고 싶나요!?? for문을 쓰세요!

profile
레거시 학살자

0개의 댓글