본문 바로가기
Study (etc)/Problem Solving

[BOJ / C++] 10867번 : 중복 빼고 정렬하기

by Haren 2022. 11. 4.

문제

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 컨테이너의 내용을 출력하면 된다.

 

 

10867번: 중복 빼고 정렬하기

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

www.acmicpc.net