1. 숫자를 입력받고 정렬해서 출력하면 된다.

2. 우선순위 큐를 사용했는데, 통과했다.

3. 원래 생각하던 솔루션은 입력받고 mergesort (quicksort 는 stack 메모리 초과될걸로 예상)

import java.util.*;
import java.io.*;
/**
* https://www.acmicpc.net/problem/11728
* BOJ 백준온라인져지 11728 배열 합치기 풀이
*/
public class Main {
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
StringTokenizer st = new StringTokenizer(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>();
while (st.hasMoreTokens()) {
int m = Integer.parseInt(st.nextToken());
pq.offer(m);
}
st = new StringTokenizer(br.readLine());
while (st.hasMoreTokens()) {
int m = Integer.parseInt(st.nextToken());
pq.offer(m);
}
while (!pq.isEmpty()) {
bw.write(pq.poll() + " ");
}
bw.flush();
}
}
view raw Main.java hosted with ❤ by GitHub

문제

정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)

둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절대값이 109보다 작거나 같은 정수이다.

출력

첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.

예제 입력 1 

2 2
3 5
2 9

예제 출력 1 

2 3 5 9

예제 입력 2 

2 1
4 7
1

예제 출력 2 

1 4 7

예제 입력 3 

4 3
2 3 5 9
1 4 7

예제 출력 3 

1 2 3 4 5 7 9

출처


+ Recent posts