brunch

You can make anything
by writing

C.S.Lewis

by Lynn Nov 14. 2022

코딩 테스트 <짝수 홀수 개수>

프로그래머스 <짝수 홀수 개수>

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

1 ≤ num_list의 길이 ≤ 100

0 ≤ num_list의 원소 ≤ 1,000


문제 풀이

function solution(num_list) {

    let answer = [];

    let even = [];

    for (let i=0; i<num_list.length; i++){

        if (num_list[i] % 2 === 0){

        even.push(i);

        }

    }

    answer = [even.length, num_list.length - even.length] //배열 요소 내용을 직관적으로 표기할 수 있다. 

    return answer;

}


중요 개념 

지난 배열 문제와 유사하다. 


짝수 홀수의 개수를 담을 배열 answer를 빈 배열로 선언한다. 

그리고 짝수 원소만을 담을 even 또한 빈 배열로 선언한다.

for 반복문을 통해 매개변수 num_list의 배열 끝까지 (num_list.length) 반복식을 만들어준다. 

if 조건문을 이용하여 num_list의 [i]번째 배열일 때, 짝수가 나오는 [i]번째 원소들을 골라내고 

이들을 짝수 배열 even에 push()를 이용해 넣어준다. 


answer 배열은 곧 [even배열의 개수, 전체 num_list 개수 - even 배열의 개수(즉 홀수의 개수)]를 직관적으로 표기하여 나타내주면 된다. 


for 반복문과 if 조건문을 이용해 짝수 걸러내기까지는 완성했다. 

하지만 마지막 answer 배열에 [짝수 개수, 홀수개수]를 명시하는 것이 또 다른 함수 객체 문법을 이용해야 하는 게 아닌가 의문이 들었다. ([짝수의 요소, 홀수의 요소...]가 아닌)

식처럼, 배열[] 안에는 직관적으로 배열요소를 내포하는 식을 전개할 수 있었다. 

작가의 이전글 코딩테스트 <중복된 숫자 개수>
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari