코딩테스트

[C++][해시] 프로그래머스 - 폰켓몬

goliot 2024. 3. 4. 16:30
반응형

 

기본적인 해시 문제이다.

 

unordered_set은 중복을 허용하지 않으므로 벡터에 들어있는 모든 숫자들을 unordered_set에 삽입하면

자연스럽게 폰켓몬의 종류를 구할 수 있다.

 

예외사항으로, 폰켓몬의 종류가 N/2보다 클 수 있으니, 해당 경우에만 예외처리를 해주면 무리없이 통과할 수 있는 문제였다.

#include <vector>
#include <unordered_set>
using namespace std;

int solution(vector<int> nums)
{
    int answer = 0;
    int cnt = 0;
    unordered_set<int> us;
    
    for(int i=0; i<nums.size(); i++) {
        us.insert(nums[i]);
    }
    
    if(nums.size() / 2 < us.size()) {
        answer = nums.size() / 2;
    }
    else answer = us.size();
    
    return answer;
}
반응형