본문 바로가기

백준/C++

[Baekjoon/C++] 10867번 - 중복 빼고 정렬하기

[백준] Baekjoon Online Judge

문제로 이동

 

문제

N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.

 

입력

첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.

 

출력

첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다.

 


풀이

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

set<int> s;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int N;
    cin >> N;

    for (int i = 0; i < N; i++) {
        int n;
        cin >> n;

        s.insert(n);
    }

    for (auto iter = s.begin(); iter != s.end(); iter++)
        cout << *iter << ' ';

    return 0;
}

 중복을 허용하지 않고, 자동으로 정렬되는 set을 사용하여 문제를 풀었다.