logo
Posts
짝수와 홀수의 개수

짝수와 홀수의 개수

문제 설명

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

제한 사항

  • 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로 세 개 있습니다.

입출력 예 #2

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

문제풀이 (나)

function solution(num_list) {
    let result = [0, 0];
    num_list.map((num) => result[num % 2] ++);
    return result;
}
  1. map으로 순회하며 list를 하나씩 가져온다.
  2. 사실 배열 안의 값을 가져올 방법은 많다.
  3. forEach, for … in, for … of 등등이 있다.
  4. 실행속도가 map이 가장 빠르다고 기억하고 있었는데, 이 글을 작성하면서 다시 찾아보니 forEach가 map 보다 아주 약간 더 빠르게 동작한다고 한다.
  5. return 할 result의 인덱스 번호가 다시 보니 각각의 num 값의 나머지와 같았다.
  6. 예를들어, 1 일 경우는 나머지가 1이다. 홀수가 저장될 result 배열의 인덱스는 [1] 이다.
  7. 예를들어, 4 일 경우는 나머지가 0이다. 짝수가 저장될 result 배열의 인덱스는 [0] 이다.
  8. 2번에서 구한 인덱스 번호의 값을 1개씩 더해주기만 하면 끝이다.

문제풀이 (다른사람)

function solution(num_list) {
    var answer = [0,0];
 
    for(let a of num_list){
        answer[a%2] += 1
    }
 
    return answer;
}
  • 가장 많은 좋아요를 받은 사람의 풀이를 가져왔다.
  • 내가 생각했던 부분이랑 큰 차이는 없는 것 같다.

레퍼런스