본문 바로가기

Problem Solving/백준

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


#include <iostream>
#include <iomanip>
#include <vector>
#include <numeric>
#include <math.h>
#include <algorithm>
#include <functional>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> arr(N);

    for(int i = 0; i < N; i++) {
        cin >> arr[i];
    }

    sort(arr.begin(), arr.end());
    arr.erase(unique(arr.begin(),arr.end()), arr.end());
    for(int it : arr) {
        cout << it;
        it == arr.back() ? cout << "\n" : cout << " ";
    }
}

솔팅해서 중복되는 것들은 뒤로 보내고 그것들만 제거하도록 하였습니다. 이후  출력할 때

맨 마지막 것이 아니면 공백을 추가하고 마지막 출력이 되는 순간 엔터를 출력하도록 하였습니다.


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

 

10867번: 중복 빼고 정렬하기

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

www.acmicpc.net