1. 숫자를 입력받고 정렬해서 출력하면 된다.
2. 우선순위 큐를 사용했는데, 통과했다.
3. 원래 생각하던 솔루션은 입력받고 mergesort (quicksort 는 stack 메모리 초과될걸로 예상)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
문제
정렬되어있는 두 배열 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
출처
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 10163 색종이 풀이 (0) | 2018.05.27 |
---|---|
BOJ 백준온라인져지 13702 이상한 술집 풀이 (0) | 2018.05.25 |
BOJ 백준온라인져지 13698 Hawk eyes 풀이 (0) | 2018.05.24 |
BOJ 백준온라인져지 13700 완전 범죄 풀이 (0) | 2018.05.24 |
BOJ 백준온라인져지 13701 중복 제거 풀이 (0) | 2018.05.24 |