프로그래머스 폰켓몬 c++ unordered_map 해시

2023. 10. 25. 16:09알고리즘

간단한 구현 문제이라서 unordered_map을 사용했다. 

 

unordered_map은 해시 테이블을 기반으로 키-밸류 쌍을 저장한다. 검색 연산에 뛰어나며 평균적으로 O(1)의 시간 복잡도를 가지는 해시 테이블을 활용해 데이터를 저장한다. 

 

set은 중복되지 않는 정렬된 요소를 저장하며 레드 블랙 트리를 기반으로 한다. 중복이 허용되지 않으며 정렬된 상태가 유지된다.

unordered_map은 속도가 빠르며 정렬되지 않는다 .

 

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

using namespace std;

int solution(vector<int> nums)
{
    int answer = 0;
    unordered_map<int, int> m;
    for (int i = 0;i < nums.size();i++) {
        m[nums[i]]++;
    }
    answer = min(nums.size() / 2, m.size());
    return answer;
}