Make Unreal REAL.
article thumbnail
Level 1. 같은 숫자는 싫어

 

 

unique() 함수는 양옆의 원소를 비교하여 중복 원소들을 끝으로 몰아 놓는다.

 

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

using namespace std;

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

    return arr;
}

 

스택을 이용해 최초 원소를 삽입하고 중복 원소는 삽입하지 않으며 새로운 원소가 나오면 pop() 후 push()한다.

 

문제 유형에 <스택/큐>라고 나와있어서 스택을 사용해봤는데 사실 사용하지 않아도 된다.

 

#include <iostream>
#include <vector>
#include <stack>

using namespace std;

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

    for (int e : arr)
    {
        if (stck.empty())
        {
            stck.emplace(e);
            answer.emplace_back(e);
        }
        else if (stck.top() != e)
        {
            stck.pop();
            stck.emplace(e);
            answer.emplace_back(e);
        }
    }

    return answer;
}

 

어차피 스택에는 1개의 원소만 저장되므로 그냥 int 변수 1개를 사용해도 된다.

 

#include <iostream>
#include <vector>

using namespace std;

vector<int> solution(vector<int> arr)
{
    vector<int> answer;
    int t = -1;

    for (int e : arr)
    {
        if (t == -1 || t != e)
        {
            t = e;
            answer.emplace_back(t);
        }
    }

    return answer;
}
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그