Study/Problem Solving
[BOJ_11728] 배열 합치기
monitor
2023. 11. 7. 22:05
설명
투 포인터를 구현하듯이 문제를 풀었다. 아무리 해도 시간 초과가 해결되지 않아서 여러 입출력 방법을 동원해서 풀었다.
코드
package two_pointer;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class BOJ_11728 {
public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tk = new StringTokenizer(in.readLine()," ");
int N = Integer.parseInt(tk.nextToken());
int M = Integer.parseInt(tk.nextToken());
int arr[] = new int[N];
int arr1[] = new int[M];
tk = new StringTokenizer(in.readLine()," ");
for(int i = 0; i < N; i++){
arr[i] = Integer.parseInt(tk.nextToken());
}
tk = new StringTokenizer(in.readLine()," ");
for(int i = 0; i < M; i++){
arr1[i] = Integer.parseInt(tk.nextToken());
}
Arrays.sort(arr);
Arrays.sort(arr1);
int right = 0;
int left = 0;
int idx = 0;
StringBuilder sb = new StringBuilder();
while(right < N && left < M){
if(arr[right] < arr1[left]){
sb.append(arr[right++] + " ");
}
else{
sb.append(arr1[left++] + " ");
}
}
while(right < N){
sb.append(arr[right++] + " ");
}
while(left < M){
sb.append(arr1[left++] + " ");
}
System.out.println(sb);
}
}
11728번: 배열 합치기
첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거
www.acmicpc.net