문제설명

 

소스코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
	int N;
	vector<int> arr;
	cin >> N;
	int input;
	for (int i = 0; i < N; i++)
	{
		cin >> input;
		arr.push_back(input);
	}
	sort(arr.begin(), arr.end());
	arr.erase(unique(arr.begin(), arr.end()), arr.end());
	for (int i = 0; i < arr.size(); ++i) cout << arr[i] << " ";
}

 

설명

  • 벡터로 입력된 값을 받는다.
  • sort 함수를 이용하여 벡터를 오름차순으로 정렬한다.
  • unique(arr.begin(), arr.end()) -> 중복된 원소를 뒤로 밀어버려서 벡터 뒤엔 중복된 원소만 남게됨. 이후 중복된 원소의 첫 번째 원소의 주소를 리턴
  • arr.erase(unique(arr.begin(), arr.end()), arr.end()) -> 중복된 원소의 첫 번째 부터 벡터의 마지막까지를 지워버림