같은 숫자는 싫어

NJW·2021년 8월 21일
0

코테

목록 보기
68/170

들어가는 말

중복되는 숫자를 삭제하고 출력하는 방식이다.

코드 설명

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;
}

P.s

erase함수를 쓰려했는데 뭐가 문제인지 잘 안 됐다(힝...). 그래서 그냥 벡터를 이용했는데, 다른 사람들의 풀이를 보니 erase함수를 쓴 풀이가 있더라. erase함수 뿐만 아니라 unique함수를 써서 풀었다.
unique함수는 중복되지 않는 원소들을 앞에서부터 채우는 함수이다. algorithm 헤더가 필요하다.
arr.erase(unique(arr.begin(), arr.end()), arr.end());

profile
https://jiwonna52.tistory.com/

0개의 댓글