갓생살기프로젝트

[백준/BOJ/C++] 11728번 배열 합치기 - 정렬 본문

차근차근 알고리즘/etc.

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

Heeyeon.dev 2021. 2. 13. 23:37
728x90

 

11728번: 배열 합치기

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

www.acmicpc.net

1. 문제

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


2. 입력

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

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


3. 출력

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


4. 풀이

출력 결과를 봤을 때 결과적으로 입력된 숫자들을 모두 정렬해서 한 줄로 출력한 모양이다.

문제에서는 두 배열 A와 B가 주어지지만, 어차피 각각 배열에 있는 숫자를 모두 합쳐서 정렬을 해야 하기 때문에 입력받을 때 별도의 구분 없이 하나의 벡터에 다 넣은 다음 sort 함수로 정렬을 하면 간단하게 풀이할 수 있다.


5. 소스코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int N, M;
    cin>>N>>M;
    vector<int> result;
    for(int i = 0; i < N+M; i++){
        int x;
        cin>>x;
        result.push_back(x);
    }
    sort(result.begin(), result.end());
    for(int i = 0; i < result.size(); i++){
        cout<<result[i]<<" ";
    }

    return 0;
}

 

728x90