[프로그래머스] 짝수 홀수 개수

백승연·2023년 12월 12일
0

프로그래머스 - Lv. 0

목록 보기
12/60
post-thumbnail

🗒️ 문제

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

function solution(num_list) {
    var answer = [];
    return answer;
}

제한 사항

  • 1 ≤ num_list의 길이 ≤ 100
  • 0 ≤ num_list의 원소 ≤ 1,000

입출력 예

num_listresult
[1, 2, 3, 4, 5[2, 3]
[1, 3, 5, 7][0, 4]

입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.

입출력 예 #1

  • [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.

🖋️ 나의 풀이

처음에는 map()을 이용하여 홀짝을 구분하고 나온 결과에 filter()를 걸어서 결과를 출력하는 방식으로 풀었다.

function solution(num_list) {
    let arr = num_list.map((el) => {
        if(el % 2 == 0) { 
            // return arr.push(el.length);
            return "짝수";
        }
        else { 
            return "홀수"; 
        }
        for (let i=0; i<=el.length; i++) {
            return console.log("d");
        }
    });
    let a = arr.filter(item => "짝수" === item).length;
    let b = arr.filter(item => "홀수" === item).length;
    return [a, b];
}

그런데 위의 방식으로 풀고 나니까 그냥 filter 한개로만 작성 가능하다는걸 깨달아서 코드를 더 간결하게 바꿨다.

function solution(num_list) {
    let a = num_list.filter(item =>  item%2 === 0).length;
    let b = num_list.filter(item => (item%2)-1 === 0).length;
    return [a, b];
}

💡 다른 사람들의 풀이

# 1

of를 사용해서 이렇게 간단하게 풀 수 있다니;;

function solution(num_list) {
    var answer = [0,0];

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

    return answer;
}

# 2

배열로 바로 리턴하는 방법이 신기해서 가져옴
그리고 나는 홀수를 filter(item => (item%2)-1 === 0)로 작성했는데 그냥 1을 쓰면 되는거였다..

function solution(num_list) {
  return [
    num_list.filter((num) => num % 2 === 0).length,
    num_list.filter((num) => num % 2 === 1).length,
  ];
}
profile
공부하는 벨로그

0개의 댓글