// ● 실습 문제
// 임의의 배열(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]);
}
}
}
'📚Study Note > JAVA' 카테고리의 다른 글
[ JAVA ] 주민등록번호 유효성 검사(...는 이제 안됨) (0) | 2021.03.27 |
---|---|
[ JAVA ] 배열을 활용한 만능달력 (0) | 2021.03.27 |
[ JAVA ] 배열의 복사 - 얕은복사와 깊은복사 (주소값 복사와 데이터복사) (0) | 2021.03.26 |
[ JAVA ] 메소드 오버로딩 (Method Overloading) 이 가능한 경우와 아닌 경우 (0) | 2021.03.25 |
[ JAVA ] 흔해빠진 int[ ] 이 아닌 클래스 '객체' 가 들어있는 배열(feat. Record [ ] (0) | 2021.03.25 |