프로그래머스 레벨 1 테스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <vector>
#include <iostream>
 
using namespace std;
 
vector<int> solution(vector<int> arr) 
{
    vector<int> answer;
    
    int PrevNum = -1;
    for(int i = 0 ; i < arr.size() ; i++)
    {
        if(PrevNum == -1)
        {
            answer.emplace_back(arr[i]);
            PrevNum = arr[i];
        }   
        else
        {
            if(PrevNum != arr[i])
            {
                answer.emplace_back(arr[i]);
                PrevNum = arr[i];
            }
        }
    }
 
    return answer;
}
 

내가 만든 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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;
}
 
 

모범 코드

alogorithm 라이브러리의 unique() 사용

unique() 함수 사용

-> 배열에서 연속으로 중복되는 내용을 쓰레기값으로 만든 후 배열의 맨끝으로 보내버리는 함수

unique() 함수 작동완료 시 반환값은 위치값으로, 맨 뒤로 보내진 쓰래기 배열의 첫번째로 이동한다.

+ Recent posts