C_C++

(C언어) 교집합 구하기

고니자니 2023. 5. 28. 18:00
반응형

 

#include <stdio.h>
#define SIZE    100

int Intersection(int arr1[], int arr2[], int intersection[], int size1, int size2)
{
    int i, j, k;


    k = 0; // 교집합 배열의 인덱스

    for (i = 0; i < size1; i++) 
    {
        for (j = 0; j < size2; j++) 
        {
            if (arr1[i] == arr2[j]) 
            {
                intersection[k] = arr1[i];
                k++;
                break;
            }
        }
    }

    return k;
}

void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() 
{
    int arr1[] = { 1, 2, 3, 4, 5 };
    int arr2[] = { 4, 5, 6, 7, 8 };
    int intersection[SIZE]; // 교집합 요소를 저장할 배열

    int size1 = sizeof(arr1) / sizeof(arr1[0]);
    int size2 = sizeof(arr2) / sizeof(arr2[0]);


    printf("A: ");
    printArray(arr1, size1);
    printf("B: ");
    printArray(arr2, size2);

    printf("교집합: ");
    int n = Intersection(arr1, arr2, intersection, size1, size2);
    printArray(intersection, n);

    return 0;
}

교집합

반응형