728x90
반응형
오늘은 대선이라 휴식했다. 공부시간이 부족했다.
오늘 배운 것
1. 문제 풀이
. 알고리즘적으로 어떻게 푸는 것인지 배웠다. 나는 단순히 배열을 합치고 sort하면 된다고 생각했는데, 알고리즘 적으로 개선된 알고리즘은 아래와 같다.
import java.util.ArrayList;
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) {
int p1=0,p2=0;
ArrayList<Integer> answer = new ArrayList<>();
while(p1 < arr.length && p2 < arr2.length){
if(arr[p1] < arr2[p2]){
answer.add(arr[p1++]);
}else{
answer.add(arr2[p2++]);
}
}
while (p1<arr.length){
answer.add(arr[p1++]);
}
while (p2<arr2.length){
answer.add(arr2[p2++]);
}
for (int i = 0; i < answer.size(); i++) {
System.out.print(answer.get(i)+" ");
}
}
}
728x90
반응형