본문 바로가기

백준/실버

[백준 10867번] 중복 빼고 출력하기 (C++)

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

 

10867번: 중복 빼고 정렬하기

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

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;

int N;
set<int>s;

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

    cin >> N;
    for(int i=0; i<N; i++) 
    {
        int n;
        cin >> n;
        s.insert(n); //중복제거
    }

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

 

중복 제거를 위해 처음부터 입력받은 값에 set에 저장해준다.

set은 기본적으로 들어온 값에 대해 오름차순 정렬을 시행하기에 set에 입력받았던 값을 순서대로 출력해주면 된다.