중복되는 숫자를 삭제하고 출력하는 방식이다.
1부터 시작해서 앞의 숫자와 뒤의 숫자가 다를 경우 answer값에 넣어주는 방식을 취했다. 1부터 시작하기 때문에 반복문이 시작하기 전 0은 미리 넣어주었다.
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
answer.push_back(arr[0]);
for(int i = 1; i < arr.size(); i++){
if(arr[i - 1] != arr[i]){
answer.push_back(arr[i]);
}
}
return answer;
}
erase함수를 쓰려했는데 뭐가 문제인지 잘 안 됐다(힝...). 그래서 그냥 벡터를 이용했는데, 다른 사람들의 풀이를 보니 erase함수를 쓴 풀이가 있더라. erase함수 뿐만 아니라 unique함수를 써서 풀었다.
unique함수는 중복되지 않는 원소들을 앞에서부터 채우는 함수이다. algorithm 헤더가 필요하다.
arr.erase(unique(arr.begin(), arr.end()), arr.end());