[JAVA](기초) for문, if문, 배열 활용-2

나옹·2022년 11월 17일
0
int[] A = { 30, 1, 18, 2, 5, 10, 15, 9, 5, 25, 5 };
int[] B = { 2, 4, 11, 5, 24, 18, 8, 4, 13, 18 };

:: 는
A 배열과 B 배열에 동시에 존재하는 수의 갯수를 구하는 연산" 이다
A :
: B = 9 ( A' = { 18, 2, 5, 5, 5 }, B' = { 2, 5, 18, 18 } )

-A:*:B를 구하시오

int aa=0;
for (int i=0; i<A.length; i++) {
   for(int j=0; j<B.length; j++) {
		if(A[i]==B[j]) {
   		aa++;
   		break;
		}
   }
}

for (int i=0; i<B.length; i++) {
   for(int j=0; j<A.length; j++) {
	if(B[i]==A[j]) {
  	aa++;
   	break;
	}
   }
}

System.out.println("A:*:B= "+aa);

이중 for문을 두 번 사용하였다.
첫번째 이중 for문에는 A배열 값 중에 B 배열 값이 있다면 aa++를 하여주고 두번째 이중 for문은 B배열 값 중에 A배열 값이 있다면 aa++를 해준다.

|| 는
A 배열과 B 배열에 동시에 존재하는 수의 집합(set)의 크기를 구하는 연산
A |
| B 값을 구하시오

int [] C=new int [A.length+B.length];

int aa=0;
    
    for (int i=0; i<A.length; i++) {
       for(int j=0; j<B.length; j++) {
          if(A[i]==B[j]) {
             for(int k=0; k<C.length; k++) {
                if(C[k]==0) {
                   C[k]=A[i];
                   break;
                }
             }              
          }
       }
    }

    
    for(int i=0; i<C.length; i++) {
       for(int j=i+1; j<C.length; j++) {
          if(C[i]==C[j]) {
             C[j]=0;
          }
       }
    }
    
    
    for(int i=0; i<C.length; i++) {
       if(C[i]!=0) {
          aa++;
       }
    }
    
System.out.println("A |*| B= "+ aa);

A배열과 B배열이 공통으로 가지고 있는 숫자를 저장하기 위한 배열 C를 선언한다.
C의 크기는 A,B 배열이 모두 공통일 경우 최댓값인 A.length+B.length로 선언해주었다.

A,B 배열에 공통된 수를 확인하고 C배열에 인덱스 값이 0인곳(int 자료형의 기본값은 0이기 때문에)에 저장한다.

그리고 마지막엔 C배열에서 0이 아닌 인덱스 값을 찾아 aa++를 해준다.

profile
최고의 개발을 위해 !

0개의 댓글