📚Study Note/JAVA
[ JAVA ] 배열 (Array)의 복사, 합집합 출력
칠칠라
2021. 3. 27. 22:28
// ● 실습 문제
// 임의의 배열(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]);
}
}
}