JAVA

중복이 제거된 배열

9400 2022. 9. 17. 09:58

/*문제3.
 * 1~10 사이의 랜덤한 값이 10개 저장된 배열에서
 * 중복된 값이 제거된 배열을 만들어주세요. 
 *{5,8,8,4,4,4,1,1,2,5}
 *
 */

Random rnd = new Random();

int[] ar = new int[10];
for(int i = 0; i<ar.length; i++) {
 ar[i]= rnd.nextInt(10)+1 ;
}
System.out.println(Arrays.toString(ar));

//중복이 제거된 배열
int[] a = new int[] {ar[0]}; //한개짜리 배열을 만듦.

for(int i =0; i<ar.length; i++) {
int pick = ar[i]; //ar에서 숫자 하나를 꺼냄
boolean duple = false;  //중복검사를 결과를 위해 만듦

// 배열 a에 pick숫자가 이미 있는지 확인 
for(int j=0; j<a.length; j++) {
if(pick==a[j]) duple=true; //있으면 duple=true
}

if(!duple) { //if(duple == false){ => 중복이 없다면
int[] b =new int[a.length + 1]; // 배열 a보다 길이가 1큰 임시배열 b를 만듦


//배열a에 있는 값을 배열 b에 복사
for(int j =0; j<a.length; j++) {
b[j]=a[j];
}
//중복이 아닌 숫자 pick을 배열 b 맨마지막에 넣어줌
b[b.length-1] =pick;
// 배열 a를 배열 b로 주소값을 변경함 
a=b;
}
}
System.out.println(Arrays.toString(a));


System.out.println("-------------------------------------");