swea 문제를 풀다가 알게된 vector의 원소 중 중복값 없애기!
정말 간단하게 가능하다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector<int> v;
v.push_back(2);
v.push_back(4);
v.push_back(5);
v.push_back(2);
v.push_back(7);
v.push_back(4); //2,4,5,2,7,4 순서대로 저장됨.
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
/*
algorithm 라이브러리에 있는 sorting 함수로 원소들을 정렬.
algorithm 라이브러리에 있는 unique 함수: 중복된 값을 맨 뒤로 보내고 중복된 값의 처음 인덱스를 반환한다.
v = {2,4,5,2,7,4} -> v = {2,4,5,7,2,4} -> 두번째 2 인덱스 4를 반환
vector 함수인 erase를 통해 마지막 2와 4를 지운다.
*/
//최종: v = {2,4,5,7}
return 0;
}
algorithm 라이브러리를 추가 해주고
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
이 두 줄만 추가하면 완성!
'Algorithm > 기초다지기' 카테고리의 다른 글
[c++] 16진수를 10진수로 (0) | 2019.10.20 |
---|---|
[c++] 정렬/솔팅 알고리즘 정리(삽입정렬, 선택정렬, 버블솔트, 퀵솔트, 병합정렬) (0) | 2019.10.17 |
[c++]최소 공배수와 최대 공약수 구하기 (0) | 2019.09.04 |
[기초다지기] 백준 문제집으로 시작하기 (0) | 2019.07.07 |
알고리즘 너는 정말... (0) | 2019.07.04 |