Test099 배열의 복사 / 임의의 배열(a, b)에 들어 있는 숫자들의 합집합을 출력하는 프로그램
○ 실습 문제
임의의 배열(a, b)에 들어 있는 숫자들의 합집합을 출력하는 프로그램을 구현한다.
단, 중복이 제거된 상태의 합집합을 출력할 수 있도록 한다.
ex) 임의의 두 배열
int[] a = {2, 3, 7, 10, 11}
int[] b = {3, 6, 10, 14}
실행 예)
2 3 7 10 11 6 14
계속하려면 아무 키나 누르세요...
Test099.java
public class Test099
{
public static void main(String[] args)
{
// 임의의 두 배열 구성
int[] a = {2, 3, 7, 10, 11};
int[] b = {3, 6, 10, 14};
//--------------------------------------------------------------------------------------------- 방법 ①
// - 집합 a 의 전체 요소 출력
for (int i=0; i<a.length; i++)
System.out.printf("%3d", a[i]);
// - 집합 b 는 집합 a 와 중복되는 데이터를 제거하면서 출력
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; //-- 멈춘다. 그리고 빠져나간다. (j 관련 반복문 탈출)
}
}
if (flag)
continue; //-- 뒷부분(출력구문) 무시하고 계속해라.
System.out.printf("%3d", b[i]);
}
System.out.println();
//--------------------------------------------------------------------------------------------- 방법 ②
// - 임시 배열을 만들고
int[] temp = new int[a.length + b.length];
// - 만들어진 임시배열에 중복되지않은 배열 요소를 채운 다음
int n; //-- 변수의 선언 위치 중요~!!! check~!!!
for (n=0; n<a.length; n++)
temp[n] = a[n];
//-- n은 5가 된 상황이다.
for (int k=0; k<b.length; k++)
{
boolean flag = false;
for (int m=0; m<a.length; m++)
{
if (b[k]==a[m])
{
flag = true;
break;
}
}
if (flag)
continue;
temp[n] = b[k];
n++;
}
// - 그렇게 구성된 임시 배열을 전체 출력
for (int i=0; i<n; i++)
System.out.printf("%3d", temp[i]);
System.out.println();
System.out.println();
}
}
cmd
2 3 7 10 11 6 14
2 3 7 10 11 6 14
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test100_ 만년달력 (2) | 2018.05.29 |
---|---|
이클립스 에러해결 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path (21) | 2018.05.21 |
JAVA_ Test098_ 배열 / 배열의 복사 (Test097 파일과 비교) / 데이터 복사 (0) | 2018.05.13 |
JAVA_ Test097_ 배열 / 배열의 복사 (Test098 파일과 비교) / 주소값 복사 (0) | 2018.05.13 |
JAVA_ Test096_ 메소드 중복정의(Mathod Overloading) 개요 / 메소드 오버로딩(Mathod Overloading)이 가능한 형태와 불가능한 형태 (0) | 2018.04.30 |
댓글