본문 바로가기

📚Study Note/JAVA

[ JAVA ] 배열 (Array)의 복사, 합집합 출력

// ● 실습 문제
// 임의의 배열(a, b)에 들어있는 숫자들의 합집합을 출력하는 프로그램을 구현한다.
// 단, 중복이 제거된 상태의 합집합을 출력할 수 있도록 한다. 
// 또한 배열 복사 개념을 적용시켜 처리할 수 있도록 한다.

 

 

// ex) 임의의 두 배열
// int[] a = {2, 3, 7, 10, 11}
// int[] b = {3, 6, 10, 14}

 

//실행 예)
// 2 3 7 10 11 6 14

 

 

 

 

//방법1. 집합a의 전체요소를 출력하고 중복을 제거한 집합 b를 출력한다

public class Test099_1

{
	public static void main(String[] args)
	{
		
		//방법1. 집합a의 전체요소를 출력하고 중복을 제거한 집합 b를 출력한다
		
		int[] a = {2, 3, 7, 10, 11};
		int[] b = {3, 6, 10, 14};
		

		/*for (int i=0; i<a.length; i++)
		{
			System.out.printf("%3d",a[i]);
		}

		for (int j=0; j<b.length; j++)
		{
			boolean flag = false;
			for (int k=0; k<a.length; k++)
			{
				if (b[j]==a[k])
				{				
					flag = true;
					break;
				}

			}

			if (flag)
			{
				continue;
			}
			System.out.printf("%3d",b[j]);
		}*/


		
	}


}

 

 

 

 

 

 

 

 

//방법2. 임시배열을 만들어 중복되지 않은 배열 요소를 채운 다음 그렇게 구성된 임시배열을 출력한다. 채워진 만큼만!

 

public class Test099_1

{
	public static void main(String[] args)
	{

		
		int[] a = {2, 3, 7, 10, 11};
		int[] b = {3, 6, 10, 14};

		//방법2. 임시배열을 만들어 중복되지 않은 배열 요소를 채운 다음 그렇게 구성된 임시배열을 출력한다. 채워진 만큼만!

		int[] temp = new int[a.length + b.length];
		int n;
		for (n=0; n<a.length; n++)
		{
			temp[n] = a[n];
		}

		for (int i=0; i<b.length; i++)
		{
			boolean flag = false;
			
			for (int j=0; j<a.length; j++)
			{
				if (b[i]==a[j])
				{
					flag=true;
					break;
				}

			}
			if (flag)
			{
				continue;
			}
			temp[n]=b[i];
			n++;


		}
		for (int i=0; i<n; i++)
		{
			System.out.printf("%3d",temp[i]);
		}



	}


}