Jinny Kong’s blog
18th Koala 5주차 본문
이번 주차는 하나 남은 시험(ಠ‸ಠ) 이슈로 모의테스트 문제밖에 풀지 못했다... ㅜㅜ
그치만 모의테스트 문제라도 블로그에 기록해보려 한다..! ˶ˊᜊˋ˶ᐝ

백준 11728번 : 배열 합치기
정렬되어있는 두 배열 A와 B가 주어질 때, 두 배열을 합친 다음 정렬해서 출력하는 문제이다.
이번 문제는 보기에는 쉬워 보였지만 생각보다 헤매는 부분이 있었던 문제였다
두 개의 정렬된 배열을 합쳐서 하나로 만들고, 다시 정렬해서 출력하는 간단한 문제였는데 처음에 vector를 어떻게 써야 할지 헷갈려서 시간을 좀 잡아먹었다!! 그리고 일단 어떻게 배열을 합칠지에 대해 고민하는 시간이 길었던 것 같다...!
1. 입력 및 배열 준비
int n, m;
cin >> n >> m;
vector<int> a(n + m);
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = 0; i < m; ++i) cin >> a[n + i];
n, m은 각각 A 배열, B 배열의 길이이고, 그 두 배열을 한꺼번에 담을 vector<int> a(n + m)을 선언해서 메모리를 미리 확보했다!!
A는 앞쪽에 (a[0] ~ a[n-1]), B는 그 다음 위치부터 (a[n] ~ a[n+m-1]) 바로 이어서 넣는 방식이다!
2. 정렬
sort(a.begin(), a.end());
A와 B는 입력 당시 이미 정렬되어 있지만, 합친 결과는 정렬되어 있다는 보장이 없기 때문에 sort()를 이용하여 다시 한 번 정렬해주었다.
3. 출력
for (int num : a) cout << num << " ";
for-each 문을 사용해서 a 벡터의 모든 요소를 하나씩 출력해주었다.
추가로 출력이 많을 경우를 대비하여 ios::sync_with_stdio(false); cin.tie(NULL); 를 써서 속도를 최적화해주었다!! ദ്ദി•̀.̫•́✧
전체 코드는 이러하다!
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
// 1단계: 입력 및 배열 준비
int n, m;
cin >> n >> m;
vector<int> a(n + m);
for (int i = 0; i < n; ++i) cin >> a[i]; // A 배열 입력
for (int i = 0; i < m; ++i) cin >> a[n + i]; // B 배열 입력 (a 벡터 뒤쪽에 이어 붙이기)
// 2단계: 정렬
sort(a.begin(), a.end());
// 3단계: 출력
for (int num : a) cout << num << " ";
return 0;
}
이번 주차는 문제집에 있는 문제들을 풀지 못해서 너무 아쉽다...... 。°(° ᷄ᯅ ᷅°)°。 (망할 시프.....Σ(-᷅_-᷄๑))
여튼 6주차에는 못한 5주차분까지 최대한 다 할 수 있도록 해봐야겠다!!!
아쉬운 5주차도 끗!! ¸◕ˇ‸ˇ◕˛
'KOALA' 카테고리의 다른 글
| 18th Koala 8주차 (0) | 2025.05.25 |
|---|---|
| 18th Koala 7주차 (1) | 2025.05.18 |
| 18th Koala 4주차 (2) | 2025.04.13 |
| 18th Koala 3주차 (4) | 2025.04.06 |
| 18th Koala 2주차 (1) | 2025.03.30 |