문제
N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.
입력
첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.
출력
첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다.
Solved.ac 레벨
실버 V
풀이
#include <bits/stdc++.h>
using namespace std;
int n;
set<int> setNum;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n;
while(n--){
int input;
cin >> input;
setNum.insert(input);
}
for(auto it = setNum.begin(); it != setNum.end(); it++){
cout << *it << " ";
}
cout << endl;
return 0;
}
C++ STL의 컨테이너 중 Set 컨테이너는 값을 삽입하는 것만으로도 중복을 제거하고 오름차순으로 정렬을 할 수 있다.
따라서 n개의 수를 입력받는 동시에 set 컨테이너에 삽입한 뒤 반복자를 이용해서 set 컨테이너의 내용을 출력하면 된다.
'Study (etc) > Problem Solving' 카테고리의 다른 글
[BOJ / C++] 11004번 : K번째 수 (0) | 2022.11.07 |
---|---|
[BOJ / C++] 1764번 : 듣보잡 (0) | 2022.11.05 |
[BOJ / C++] 1065번 : 한수 (0) | 2022.11.03 |
[BOJ / C++] 15727번 : 조별과제를 하려는데 조장이 사라졌다 (0) | 2022.11.03 |
[BOJ / C++] 18409번 : 母音を数える (Counting Vowels) (0) | 2022.10.30 |