전공공부
[BOJ_11728] 배열 합치기 본문
설명
투 포인터를 구현하듯이 문제를 풀었다. 아무리 해도 시간 초과가 해결되지 않아서 여러 입출력 방법을 동원해서 풀었다.
코드
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
'Study > Problem Solving' 카테고리의 다른 글
[BOJ_20922] 겹치는 건 싫어 (1) | 2023.11.11 |
---|---|
[BOJ_21921] 블로그 (0) | 2023.11.08 |
[BOJ_7662] 이중 우선순위 큐 (2) | 2023.11.07 |
[BOJ_2075] N번째로 큰 수 (0) | 2023.11.05 |
[BOJ_22942] 데이터 체커 (1) | 2023.11.04 |