간단하게 표준라이브러리에서 제공하는 unique를 사용하자.
unique를 사용하고 나면 뒤에 부산물이 나오는데 알고리즘이 사용된 부분까지 이터레이터로 리턴되기 때문에 erase를 사용해서 뒤에 부분을 치우면 된다.
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> arr)
{
arr.erase(unique(arr.begin(), arr.end()), arr.end());
return arr;
}
int main()
{
for (auto d : solution({ 1, 1, 3, 3, 0, 1, 1 }))
{
cout << d << ' ';
}
}
실행결과
1 3 0 1