
25번과 유사한 문제
A, B 두 집합을 먼저 오름차순 정렬해둔 후 arr1[p1] < arr2[p2]면 p1(작은 수)을 하나 증가시킨다.
arr1[p1] == arr2[p2]인 경우는 answer에 값을 저장 후 둘 다 동시에 증가시킨다.
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public ArrayList<Integer> solution(int n, int m, int[] arr1, int[] arr2) {
ArrayList<Integer> answer = new ArrayList<>();
Arrays.sort(arr1); //오름차순 정렬
Arrays.sort(arr2); //오름차순 정렬
int p1 = 0, p2 = 0;
while(p1<n && p2<m) {
if (arr1[p1] == arr2[p2]) {
answer.add(arr1[p1++]);
p2++;
}
else if (arr1[p1] < arr2[p2]) p1++;
else p2++;
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr1 = new int[n];
for (int i = 0; i < n; i++) {
arr1[i] = kb.nextInt();
}
int m = kb.nextInt();
int[] arr2 = new int[m];
for (int i = 0; i < m; i++) {
arr2[i] = kb.nextInt();
}
for (int x : T.solution(n, m, arr1, arr2)) System.out.print(x + " ");
}
}
'Algorithm > 문제' 카테고리의 다른 글
28. 연속 부분 수열 (1) | 2023.07.25 |
---|---|
27. 최대 매출 (0) | 2023.07.25 |
25. 두 배열 합치기 (1) | 2023.07.24 |
24. 멘토링 ★★★ (0) | 2023.07.18 |
23. 임시반장 정하기 (0) | 2023.06.27 |

25번과 유사한 문제
A, B 두 집합을 먼저 오름차순 정렬해둔 후 arr1[p1] < arr2[p2]면 p1(작은 수)을 하나 증가시킨다.
arr1[p1] == arr2[p2]인 경우는 answer에 값을 저장 후 둘 다 동시에 증가시킨다.
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public ArrayList<Integer> solution(int n, int m, int[] arr1, int[] arr2) {
ArrayList<Integer> answer = new ArrayList<>();
Arrays.sort(arr1); //오름차순 정렬
Arrays.sort(arr2); //오름차순 정렬
int p1 = 0, p2 = 0;
while(p1<n && p2<m) {
if (arr1[p1] == arr2[p2]) {
answer.add(arr1[p1++]);
p2++;
}
else if (arr1[p1] < arr2[p2]) p1++;
else p2++;
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr1 = new int[n];
for (int i = 0; i < n; i++) {
arr1[i] = kb.nextInt();
}
int m = kb.nextInt();
int[] arr2 = new int[m];
for (int i = 0; i < m; i++) {
arr2[i] = kb.nextInt();
}
for (int x : T.solution(n, m, arr1, arr2)) System.out.print(x + " ");
}
}
'Algorithm > 문제' 카테고리의 다른 글
28. 연속 부분 수열 (1) | 2023.07.25 |
---|---|
27. 최대 매출 (0) | 2023.07.25 |
25. 두 배열 합치기 (1) | 2023.07.24 |
24. 멘토링 ★★★ (0) | 2023.07.18 |
23. 임시반장 정하기 (0) | 2023.06.27 |