[C++] 벡터 중복 제거

‍deprecated·2021년 6월 23일
0

C++ for Algorithm

목록 보기
3/3

벡터 중복 제거 방법

algorithm 헤더 필요

  1. 일단 벡터를 정렬
  2. unique 함수를 적용하여 유일한 원소는 앞으로, 중복된 원소(쓰레기값)은 뒤로 이동시킨다.
  3. 쓰레기값을 erase 함수 적용하여 삭제한다.
    2와 3과정은 한 번에 쓸 수 있다.
vector<int> sorted;
for (int i=0; i<n; i++){
        int tmp;
        cin>>tmp;
        sorted.push_back(tmp);
}
sort(sorted.begin(), sorted.end());
sorted.erase(unique(sorted.begin(), sorted.end()), sorted.end());

참고) unique 함수

vector<int> sorted;
int n;
cin>>n;
for (int i=0; i<n; i++) 
{
    int tmp;
    cin>>tmp;
    sorted.push_back(tmp);
}
    
sort(sorted.begin(), sorted.end());
for (int i=0; i<n; i++){
    cout << sorted[i] << ' ';
}
cout<<endl;
    
unique(sorted.begin(), sorted.end());
for (int i=0; i<n; i++){
   cout << sorted[i] << ' ';
}
cout<<endl;

결과)
입력 : 7
출력 :
1 4 2 3 2 1 1
1 1 1 2 2 3 4
1 2 3 4 2 3 4

profile
deprecated

0개의 댓글

관련 채용 정보