bdfgdfg

[레벨1] 폰켓몬 본문

코딩테스트/프로그래머스

[레벨1] 폰켓몬

marmelo12 2021. 10. 24. 13:06
반응형
#include <vector>
#include  <memory.h>
using namespace std;

int arr[200001];
int solution(vector<int> nums)
{
    int answer = 0;
    int len = nums.size();
    for(int i = 0; i < len; ++i)
    {
        if(arr[nums[i]] == 1)
            continue;
        arr[nums[i]] = 1;
        ++answer;
    }
    if(answer > (len / 2))
        return answer = (len / 2);
    return answer;
}

set을 이용하여 (이진탐색트리 - 중복키 허용x) 푸는 방법도 괜찮을듯 하다.

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


int solution(vector<int> nums)
{
    int answer = 0;
    set<int> a;
    int len = nums.size();
    for(int i = 0; i < len; ++i)
        a.insert(nums[i]);
    answer = a.size();
    if(a.size() > (len / 2))
       return answer = (len / 2);
    return answer;
}

 

반응형
Comments