[백준 알고리즘] 10867번: 중복 빼고 정렬하기

10867번: 중복 빼고 정렬하기

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

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

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

접근 방법:

정렬, 그리고 중복된 수를 허용하지 않는다는 조건을 보고 바로 set이 떠올랐다. 입력을 set으로 받기만하고 출력만 해주면 될 것 같다.

통과 코드:

#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

int main (){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int N;
    set<int> s;
    cin >> N;

    while(N--){
        int n;
        cin >> n;
        s.insert(n);
    }

    for(auto i : s){
        cout << i << " ";
    }
    return 0;
}

전여훈
Written by@전여훈 (Click Me!)
고민이 담긴 코드를 만들자, 고민하기 위해 공부하자.