프로그래머스 <짝수 홀수 개수>
문제 설명
정수가 담긴 리스트 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 배열에 [짝수 개수, 홀수개수]를 명시하는 것이 또 다른 함수 객체 문법을 이용해야 하는 게 아닌가 의문이 들었다. ([짝수의 요소, 홀수의 요소...]가 아닌)
식처럼, 배열[] 안에는 직관적으로 배열요소를 내포하는 식을 전개할 수 있었다.