1일1알

백준 11728번 배열 합치기 C++ 본문

알고리즘

백준 11728번 배열 합치기 C++

영춘권의달인 2022. 5. 13. 22:56

출처 : https://www.acmicpc.net/problem/11728

 

이미 정렬되어있는 배열 두개를 합치는 것이기 때문에 앞쪽부터 비교하면서 작은 순서대로 새로운 배열에 넣어주었다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n, m;
	cin >> n >> m;
	int p1 = 0;
	int p2 = 0;
	vector<int> v1(n);
	vector<int> v2(m);
	vector<int> ans;
	for (int i = 0; i < n; i++) {
		cin >> v1[i];
	}
	for (int i = 0; i < m; i++) {
		cin >> v2[i];
	}
	while (p1 < n || p2 < m) {
		if (p1 >= n) ans.push_back(v2[p2++]);
		else if (p2 >= m) ans.push_back(v1[p1++]);
		else if (v1[p1] >= v2[p2]) ans.push_back(v2[p2++]);
		else ans.push_back(v1[p1++]);
	}
	for (auto a : ans) {
		cout << a << " ";
	}
};