본문 바로가기
자바스크립트(JavaScript)/프로그래머스 문제풀기

[programmers - js] 짝수, 홀수 개수 / for...of 반복문

by yerica 2024. 12. 16.

 

나의 풀이

function solution(num_list) {
    let a = [];
    let b = [];
    num_list.forEach((x) => x % 2 == 0 ? a.push(x) : b.push(x))
    return [a.length, b.length]
}

 

다른 사람의 풀이

for ... of 반복문
for( a of b) 반복문은 b 배열의 각 요소를 a에 할당하며 순회한다.
 
function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }

    return answer;
}​


위의 예시에선 num_list 배열의 각 요소를 a에 할당하며 순회했다.
answer = [ 0, 0 ]이라는 배열을 만들었는데,
for 반복문에서 a % 2를 하여 값이 홀수일 경우 answer[1]에 짝수일 경우 answer[0]에 값을 더하도록 풀이한 것이 대단한 것같다.

위와 같이 작성할 경우 배열을 한번 순회하며 짝수와 홀수를 동시에 카운트 하므로 시간이 단축되고 로직이 간단하고 명확하다.
바로 배열에 입력
function solution(num_list) {
  return [
    num_list.filter((num) => num % 2 === 0).length,
    num_list.filter((num) => num % 2 === 1).length,
  ];
}