본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 22 - 짝수 홀수 개수)

728x90

 

# 문제 

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



# 답안 

// 1. 입력: num_list -> 정수 배열 [1,2,3] 같은거 
// 2. 출력: num_list의 원소 중 짝수, 홀수의 개수를 담은 배열 


// 방법1) 짝수와 홀수를 각각 필터링하여 새로운 배열을 생성한 후, 각 배열의 길이를 구하여 결과를 반환 
function solution(num_list) {
    const even = num_list.filter(item=> item % 2 == 0);
    const odd = num_list.filter(item=> item % 2 == 1);
    const answer = [even.length, odd.length]; 
    return answer;
}


// 방법2)  먼저 주어진 배열에서 짝수만 필터링하여 새로운 배열을 생성한 후, 이 배열의 길이를 통해 짝수의 개수를 구하고, 전체 길이에서 짝수의 개수를 빼서 홀수의 개수를 구하기
unction solution(num_list) {
    const evenCount = num_list.filter(num => num % 2 === 0).length;
    const oddCount = num_list.length - evenCount;
    return [evenCount, oddCount];
}



# 인사이트 

// 1번 방법은 주어진 리스트를 두 번 순회하기 때문에 두 번의 연산이 필요하다.
// 반면, 2번 방법은 주어진 리스트를 한 번만 순회하므로 더 효율적이다.
// 따라서 2번 방법이 더 효율적인 코드이다.
728x90