Algorithm/Baekjoon Online Judge

백준 10867 중복빼고 정렬하기 [C++]

감성적인 개발자 2021. 7. 25. 19:31

https://www.acmicpc.net/problem/10867

 

10867번: 중복 빼고 정렬하기

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

www.acmicpc.net


소스코드

#include<iostream>
#include<list>

using namespace std;

void sol(){
    int N, num;
    list<int> ls;

    cin >> N;
    for(int i = 0; i < N; i++){
        cin >> num;
        ls.push_back(num);
    }
    ls.sort();
    ls.unique();
    ls.resize(ls.size());

    for(auto i = ls.begin(); i != ls.end(); i++){
        cout << *i << ' ';
    }
}
int main(){
    sol();
}

- list에 반복으로 입력받은 후, unique를 사용하기 위해 오름차순 정렬한다. 중복제거 후에는 list 사이즈를 조정한다.

- sort -> unique -> resize는 거의 세트로 사용한다.

- vector를 활용해도 큰 차이는 없다.