728x90
#include<iostream>
using namespace std;

class ArrayUtility2 {
private:
	int size;
	int *s1;
	int *s2;
public:
	static int*concat(int s1[], int s2[], int size);
	static int* remove(int s1[], int s2[], int size, int &retSize);
};

int* ArrayUtility2::concat(int s1[], int s2[], int size) {
	int *temp = new int[size * 2];
	for (int i = 0; i < size; i++) {
		temp[i] = s1[i];
	}
	for (int i = 0; i < size; i++) {
		temp[size + i] = s2[i];
	}
	return temp;
}

int* ArrayUtility2::remove(int s1[], int s2[], int size, int &retSize) {
	for (int i = 0; i < size; i++) {
		for (int j = 0; j < size; j++) {
			if (s1[i] == s2[j]) s1[i] = NULL;
		}
	}

	for (int i = 0; i < size; i++) {
		if (s1[i] != NULL) retSize++;
	}
	if (retSize == 0) return NULL;

	int *temp = new int[retSize];
	int n = 0;
	for (int i = 0; i < size; i++) {
		if (s1[i] != NULL) {
			temp[n] = s1[i];
			n++;
		}
	}
	return temp;
}

int main() {
	int x[5], y[5];
	int *result;
	int retSize = 0;
	cout << "정수 5개를 입력하라. 배열x에 삽입한다>> ";
	for (int i = 0; i < 5; i++) {
		cin >> x[i];
	}
	cout << "정수 5개를 입력하라. 배열y에 삽입한다>> ";
	for (int i = 0; i < 5; i++) {
		cin >> y[i];
	}
	cout << "합친 정수 배열을 출력한다." << endl;
	result = ArrayUtility2::concat(x, y, 5);
	for (int i = 0; i < 10; i++) {
		cout << result[i] << ' ';
	}
	cout << endl;

	result = ArrayUtility2::remove(x, y, 5, retSize);
	cout << "배열 x[]에서 y[]를 뺀 결과를 출력한다. 개수는 " << retSize << endl;
	for (int i = 0; i < retSize; i++) {
		cout << x[i] << ' ';
	}
}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기