본문 바로가기
Programming Solve/BOJ

BOJ 11728 - 배열 합치기 / C++

by msm1029 2022. 6. 14.
반응형

문제 링크 : https://www.acmicpc.net/problem/11728

 

11728번: 배열 합치기

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

www.acmicpc.net

 

 

풀이

주어지는 두 배열은 이미 정렬되어 있는 상태이므로 각 배열의 0번째 인덱스부터 비교하여 순서대로 출력하면 된다.

한 포인터라도 크기를 벗어나면 while문이 종료되므로 나머지 포인터도 증가시키며 값들을 출력하면 된다.

 

코드

#include <iostream>
#include <vector>
using namespace std;

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

    int n, m;
    vector<int> v1, v2;

    cin >> n >> m;
    for(int i=0; i<n; i++){
        int tmp;
        cin >> tmp;
        v1.push_back(tmp);
    }
    for(int i=0; i<m; i++){
        int tmp;
        cin >> tmp;
        v2.push_back(tmp);
    }

    int p1 = 0, p2 = 0;
    
    while(p1 < v1.size() && p2 < v2.size()){
        if(v1[p1] <= v2[p2]) {
            cout << v1[p1++] << ' ';
        }
        else {
            cout << v2[p2++] << ' ';
        }
    }

    while(p1 < v1.size()){
        cout << v1[p1++] << ' ';
    }
    while(p2 < v2.size()){
        cout << v2[p2++] << ' ';
    }
}
반응형

'Programming Solve > BOJ' 카테고리의 다른 글

BOJ 10448 - 유레카 이론 / C++  (2) 2023.11.26
BOJ 14502 - 연구소 / C++  (0) 2022.05.04
BOJ 14501 - 퇴사 / C++  (0) 2022.05.04
BOJ 14500 - 테트로미노 / C++  (0) 2022.05.02
BOJ 5430 - AC / C++  (0) 2022.05.01