알고리즘
백준 11728번 배열 합치기 C++
영춘권의달인
2022. 5. 13. 22:56
이미 정렬되어있는 배열 두개를 합치는 것이기 때문에 앞쪽부터 비교하면서 작은 순서대로 새로운 배열에 넣어주었다.
#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 << " ";
}
};