본문 바로가기

코딩 및 기타/코딩 테스트 준비

[필수 개념] 중복된 요소 제거 방법 과 unique()

728x90

∙ map

// map 함수를 사용해 중복된 요소 제거

#include <iostream>
#include <vector>
#include <map>

using namespace std;

map<int, int> mp;
int main()
{
    vector<int> v{1, 1, 2, 2, 3, 3};
    for (int i : v){
        if(mp[i]){
            continue;
        }
        else{
            mp[i] = 1;
        }
    }
    
    vector<int> ret;
    for (auto it : mp){
        ret.push_back(it.first);
    }
    
    for (int i : ret)
        cout << i << "\n";
}

 

∙ unique()

범위안의 있는 요소 중 앞에서부터 서로를 비교해가며 중복되는 요소를 제거하고 나머지 요소들은 삭제하지 않고 그대로 두는 함수

// unique 함수

#include <iostream>
#include <vector>

using namespace std;

vector<int> v;

int main()
{
    for (int i = 1; i <= 5; i++){
        v.push_back(i);
        v.push_back(i);
    }
    
    for(int i : v){
        cout << i << " ";
    }
    cout << '\n';
    // 중복되지 않은 요소로 채운 후 그 다음 이터레이터를 반환한다.
    
    auto it = unique(v.begin(), v.end());
    cout << it - v.begin() << '\n';
    
    // 앞에서 부터 중복되지 않게 채운후 나머지 요소들은 그대로 둔다.
    for(int i : v){
        cout << i << " ";
    }
    cout << '\n';
}

'코딩 및 기타 > 코딩 테스트 준비' 카테고리의 다른 글

2주차(개념)  (0) 2023.11.09
1주차 (개념)  (0) 2023.10.27
[필수 개념] Split  (0) 2023.10.23
[필수 개념] 순열 / 조합  (0) 2023.10.23
[필수 개념] 재귀함수  (0) 2023.10.23