Coding Test/Baekjoon

[백준] 11728번 - 배열 합치기 / C++

peachh 2021. 4. 7. 23:10
728x90

문제

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

 

입력

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

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

 

출력

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

 

코드

#include <iostream>

using namespace std;

int N;
int M;
int A[1000001];
int B[1000001];

int main()
{
	int a, b;

	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> N >> M;
	for (a = 0; a < N; a++)
		cin >> A[a];
	for (b = 0; b < M; b++)
		cin >> B[b];
	a = 0;
	b = 0;
	while (a < N && b < M)
	{
		if (A[a] < B[b])
			cout << A[a++] << " ";
		else
			cout << B[b++] << " ";
	}
	while (a < N)
		cout << A[a++] << " ";
	while (b < M)
		cout << B[b++] << " ";
	cout << "\n";
	return 0;
}

 

이미 정렬되어 있기 때문에 앞에서부터 차례대로 비교하여 작은 값을 출력하면 된다. 만약 한 배열의 모든 값을 출력했다면 더 이상 비교할 수 없기 때문에 while문을 빠져온 뒤 다른 배열의 나머지 값들을 출력한다.

 

링크

 

11728번: 배열 합치기

첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거

www.acmicpc.net

 

inbdni/Baekjoon

Contribute to inbdni/Baekjoon development by creating an account on GitHub.

github.com

 

728x90