기주

[코테] java - 중복원소구하기 본문

알고리즘/코테

[코테] java - 중복원소구하기

기주그지마 2024. 11. 4. 15:04

 

 

 

 

 

2-1) 투포인터 알고리즘으로 풀기  (배열)

 

 

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();
int[] a = new int[n];
for(int i=0; i<n; i++){
    a[i] = sc.nextInt();
}
Arrays.sort(a); // 배열 정렬

int m = sc.nextInt();
int[] b = new int[m];
for(int i=0; i<m; i++){
    b[i] = sc.nextInt();
}
Arrays.sort(b); // 배열 정렬

ArrayList<Integer> list = new ArrayList<>();
int p1=0,p2=0;
while(p1<n && p2<m){
    if(a[p1] == b[p2]){  // 배열에서는 값(원시타입)으로 저장되기때문에 ==로 비교한다
        list.add(a[p1]);
        p1++;
        p2++;
    } else if(a[p1] < b[p2]) p1++;
    else p2++;
}

for(int i=0; i<list.size(); i++){
    System.out.print(list.get(i) + " ");
}