본문 바로가기
Study Note/Java

JAVA_ Test099_ 배열의 복사 / 임의의 배열(a, b)에 들어 있는 숫자들의 합집합을 출력하는 프로그램

by 시뮝 2018. 5. 13.
728x90


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


계속하려면 아무 키나 누르십시오 . . .







728x90

댓글