알고리즘/문자열, 정렬
[알고리즘] 공통원소 구하기 with Java
VIPeveloper
2022. 3. 10. 21:35
728x90
반응형
이번문제 역시 포인터를 활용한 문제이다. 먼저 정렬을 해준다는 것이 차이점이었다.
오늘 배운 것
1. 문제 풀이
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.nextInt();
}
int m = kb.nextInt();
int[] arr2 = new int[m];
for (int i = 0; i < m; i++) {
arr2[i] = kb.nextInt();
}
solution(arr,arr2);
}
private static void solution(int[] arr, int[] arr2) {
arr = Arrays.stream(arr).sorted().toArray();
arr2 = Arrays.stream(arr2).sorted().toArray();
ArrayList<Integer> answer = new ArrayList<>();
int p1=0,p2=0;
while(p1 < arr.length && p2<arr2.length){
if(arr[p1]==arr2[p2]){
answer.add(arr[p1]);
p1++;
p2++;
}else if(arr[p1] < arr2[p2]){
p1++;
}else{
p2++;
}
}
for (int i = 0; i < answer.size(); i++) {
System.out.print(answer.get(i)+" ");
}
}
}
728x90
반응형