천진난만 코딩 스토리

1-6. 홀수 본문

 

-코드 1-

  function solution(arr) {
    let answer = [];
    let sum = 0,
      min = 1000;
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] % 2 === 1) {
        sum += arr[i];
        if (arr[i] < min) min = arr[i];
      }
    }

    answer.push(sum);
    answer.push(min);
    return answer;
  }

  let arr = [12, 77, 38, 41, 53, 92, 85];
  console.log(solution(arr));

 

-풀이과정 1-

let arr = [  ]; 를 하여

입력되는 수를 배열함.

 

function solution(arr) 를 하여

배열을 불러오고


let answer = [ ]; 를 하여

answer를 배열해줌.

(배열하는 이유는, 마지막에 return을 해주어야 하는데

return은 한번에 하나밖에 받지 못하므로 answer을 배열한거임.)


let sum = 0, min = 1000; 를 하여

sum에 0을 주고 min에 매우 큰 수를 넣어줌.

 

for (let i = 0; i < arr.length; i++) 를 하여

let i = 0 을 하여 i에 0을 넣어주고

i < arr.length 를 하여 i가 arr의 배열의 길이보다 적을 때에만 반복하게 함.

i++ 를 하여 i가 1씩 늘어나면서 반복하게 함.

 

if (arr[i] % 2 === 1) 를 하여

만약 arr[i] 를 2로 나누었을 때 나머지가 1이라면

즉, 홀수라면

sum += arr[i]; 를 하여

sum = sum + arr[i]를 해줌.


if (arr[i] < min) min = arr[i]; 를 하여

만약 arr[i]가 min보다 작다면 min에 arr[i]를 넣어줌.

answer.push(sum); 를 하여

answer에 sum을 추가하고
answer.push(min); 를 하여

answer에 min을 추가함.

 

-코드 2-

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

 

-풀이과정 2-

다른 코드는 위의 풀이와 같음.

 

for(let x of arr) 를 하여

arr을 여러번 반복하여 변수 x에  할당함.


if(x%2===1) 를 하여

만약 x를 2로 나누었을 때 1이라면

즉, 홀수라면

 

sum += x; 를 하여

sum = sum + x 를 해줌.


if(x<min) min=x; 를 하여

만약 x가 min 보다 작다면 min에  x를 넣어줌.