CODE KATA #11

loopbackseal·2021년 2월 5일
0

CODE KATA 🧗‍♂️

목록 보기
11/32
post-thumbnail

최소값구하기

7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하세요.

나의 풀이

            function solution(arr){         
                let answer, min=Number.MAX_SAFE_INTEGER;
                answer = arr[0];
                for (i=1; i<arr.length; i++) {
                    answer = answer < arr[i] ? answer : arr[i];
                }
                return answer;
            }
            let arr=[5, 7, 1, 3, 2, 9, 11];
            console.log(solution(arr));

정답 풀이

            function solution(arr){         
                let answer, min=Number.MAX_SAFE_INTEGER;
                for(let i=1; i<arr.length; i++){
                    if(arr[i]<min) min=arr[i];
                }
                answer=min;
                return answer;

            }

            let arr=[5, 7, 1, 3, 2, 9, 11];
            console.log(solution(arr));

홀수 합과 최소값 구하기

7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최소값을 찾는 프로그램을 작성하세요.

나의 풀이

            function solution(arr){
                let answer=[];   
                let odd = [];
                let min, total;
                for (i=0; i<arr.length; i++) {
                    if (arr[i]%2===1) odd.push(arr[i]);
                }
                min = odd[0];
                total = odd[0];
                for (i=1; i<odd.length; i++) {
                    min = min < odd[i] ? min : odd[i];
                    total += odd[i];
                }
                answer.push(total, min);
                return answer;
             }
             arr=[12, 77, 38, 41, 53, 92, 85];
             console.log(solution(arr));

정답 풀이

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

참고할 점

한번의 for문에 홀수 판별과 최솟값 비교를 진행하는 정답 풀이에 비해, 나의 풀이는 for문을 통해 홀수의 array를 판별하고, 해당 array의 길이만큼 최솟값 비교를 위한 for문을 다시 진행하기 때문에 비효율적인 것 같다. 또한, let x of arr을 통해 반복문을 진행할 수 있다는 점도 참고해야겠다.

profile
CAU Business Administration

0개의 댓글