티스토리 뷰

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를 활용해도 큰 차이는 없다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함