https://www.acmicpc.net/problem/11728
11728번: 배열 합치기
첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거
www.acmicpc.net
풀이 :
- a배열과 b배열을 합쳐서 오름차순으로 정렬한 뒤 출력하는 문제이다
- set을 이용하면 자동 정렬이 되기 때문에 set에 넣어주고 출력만 해주면 된다
- 다만, 문제를 잘 읽어봐야 하는데 중복을 제거하라는 말이 없다.
예제에는 a배열과 b배열의 값이 중복으로 들어오는 경우가 없다.
나는 예제를 보면서 중복을 "제거해야"한다는 생각을 하게되었다(에드훅아닌지,,?)
그래서 여러모로 set을 써야겠다고 결정을 하고 제출을 했다.
당연히 틀렸고, 틀리자마자 중복을 허용해야하는구나.를 깨달았다.
- 1줄 요약 : multiset을 쓰자
코드 :
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int a, b, num;
multiset<int>s; //중복이 가능한 multiset 선언
cin >> a >> b;
for(int i=0; i<a; i++){
cin >> num;
s.insert(num);
}
for(int i=0; i<b; i++){
cin >> num;
s.insert(num);
}
set<int>::iterator iter;
for(iter=s.begin(); iter!=s.end(); iter++){
cout << *iter << ' ';
}
cout << '\n';
}
'PS_Baekjoon' 카테고리의 다른 글
[백준 C++] 1343번 : 폴리오미노 (1) | 2023.03.17 |
---|---|
[백준 C++] 2161번 : 카드1 (1) | 2023.03.16 |
[백준 C++] 1417번 : 국회의원 선거 (2) | 2023.03.14 |
[백준 C++] 2581번 : 소수 (0) | 2023.03.13 |
[백준 C++] 4949번 : 균형잡힌 세상 (0) | 2023.03.12 |