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++를 해준다.