Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 배열의 짝수·홀수 요소 개수 구하는 방법

이 튜토리얼에서는 C++를 사용해 배열에 포함된 짝수 요소와 홀수 요소의 개수를 구하는 프로그램을 다룹니다.

정수형 배열이 하나 주어졌을 때, 우리가 해야 할 작업은 해당 배열을 순회하면서 짝수와 홀수가 각각 몇 개인지 계산하는 것입니다. 이 문제는 나머지 연산자(%)만 활용하면 아주 간단하게 해결할 수 있습니다.

접근 방법

핵심 로직은 다음과 같습니다.

  • 배열의 처음부터 끝까지 요소를 하나씩 순회합니다.
  • 각 요소를 2로 나눈 나머지가 0이 아니면 홀수, 0이면 짝수로 판별합니다.
  • 판별 결과에 따라 홀수 카운트 또는 짝수 카운트를 증가시킵니다.

예제 코드

#include<iostream>
using namespace std;

void CountingEvenOdd(int arr[], int arr_size) {
    int even_count = 0;
    int odd_count = 0;

    // 배열의 모든 요소를 순회하며 검사
    for (int i = 0; i < arr_size; i++) {
        // 2로 나눈 나머지가 0이 아니면 홀수
        if (arr[i] % 2 != 0)
            odd_count++;
        else
            even_count++;
    }

    cout << "짝수 요소의 개수 = " << even_count
         << "\n홀수 요소의 개수 = " << odd_count;
}

int main() {
    int arr[] = {2, 3, 4, 5, 6};
    int n = sizeof(arr) / sizeof(arr[0]);

    CountingEvenOdd(arr, n);
    return 0;
}

실행 결과

짝수 요소의 개수 = 3
홀수 요소의 개수 = 2

코드 설명

위 예제에서 배열 {2, 3, 4, 5, 6}에는 짝수가 3개(2, 4, 6), 홀수가 2개(3, 5) 포함되어 있으므로 위와 같은 결과가 출력됩니다.

sizeof(arr) / sizeof(arr[0])는 배열 전체 크기를 요소 하나의 크기로 나누어 배열의 길이를 구하는 일반적인 방법입니다. 이렇게 구한 길이를 함수에 전달하면 반복문의 범위를 정확하게 지정할 수 있습니다.

이 알고리즘은 배열을 한 번만 순회하므로 시간 복잡도는 O(n), 추가로 사용하는 메모리는 상수 공간이므로 공간 복잡도는 O(1)입니다. 따라서 배열의 크기가 커져도 효율적으로 동작합니다.