brunch

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

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

by Lynn

문제 설명

정수가 담긴 리스트 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;

}

스크린샷 2022-11-14 오후 11.04.20.png

중요 개념

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


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

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

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

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

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


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


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

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

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

keyword
작가의 이전글코딩테스트 <중복된 숫자 개수>