프로그래머스 - 같은 숫자는 싫어(Lv1)

[풀이 1]

#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) 
{
    vector<int> answer;

    int temp = arr[0];
    answer.push_back(arr[0]);
    for(int i=1; i<arr.size(); i++) {
        if(temp != arr[i]) {
            answer.push_back(arr[i]);
            temp = arr[i];
        }
    }
    return answer;
}

[풀이 2]

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) 
{    
    arr.erase(unique(arr.begin(), arr.end()), arr.end());
    vector<int> answer = arr;

    return answer;
}

[Unique함수 활용]
1. Vector.erase(unique(vector.begin(),vector.end()), vector.end()) : 벡터의 부분삭제와 중첩 불허용
: unique가 끝났으면 반환되는값은 vector의 쓰레기값의 첫번째 위치가 되는데요, 이때문에 바로 unique후 erase가 가능합니다 [https://dpdpwl.tistory.com/39]참고
2. unique(vector.begin(), vector.end()) :

좋은 웹페이지 즐겨찾기