문제설명
소스코드
#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()) -> 중복된 원소의 첫 번째 부터 벡터의 마지막까지를 지워버림
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 13단계 - 10814번 문제 (나이순 정렬) (0) | 2023.07.18 |
---|---|
[C++] 백준 13단계 - 11650번 문제 (좌표 정렬하기) (0) | 2023.07.18 |
[C++] 백준 13단계 - 1427번 문제 (소트인사이드) (0) | 2023.07.16 |
[C++] 백준 13단계 - 10989번 문제 (커트라인) (0) | 2023.07.15 |
[C++] 백준 13단계 - 2587번 문제 (대표값2) (0) | 2023.07.14 |