카테고리 없음
25. 두 배열 합치기
누리는 귀여워
2024. 12. 15. 22:09
import java.util.*;
class Main {
public ArrayList<Integer> solution(int n, int[] arr1, int m, int[] arr2) {
ArrayList<Integer> answer = new ArrayList<>();
int p1 = 0, p2 = 0;
// n이 p1보다 크거나 m이 p2보다 크거나 &&
while(p1 < n && p2 < m) {
// p2가 크면 p1을 넣고 ++
if(arr1[p1] < arr2[p2]) {
answer.add(arr1[p1++]);
} else {
answer.add(arr2[p2++]);
}
}
// 위 반복문에서 arr1, arr2의 길이가 다르면 짧은쪽에서 종료됨
// 남은 배열의 값을 answer에 추가
while(p1 < n) {
answer.add(arr1[p1++]);
}
while(p2 < m) {
answer.add(arr2[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, arr1, m, arr2)) {
System.out.print(x + " ");
}
}
}
import java.util.*;
class Main {
public ArrayList<Integer> solution(int n, int[] arr1, int m, int[] arr2) {
ArrayList<Integer> answer = new ArrayList<>();
int p1 = 0, p2 = 0;
while(p1 < n && p2 < m) {
if(arr1[p1] < arr2[p2]) {
answer.add(arr1[p1++]);
} else {
answer.add(arr2[p2++]);
}
}
while(p1 < n) {
answer.add(arr1[p1++]);
}
while(p2 < m) {
answer.add(arr2[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, arr1, m, arr2)) {
System.out.print(x + " ");
}
}
}