C++:: 프로그래머스 <폰켓몬>

jahlee·2023년 3월 26일
0

프로그래머스_Lv.1

목록 보기
11/75
post-thumbnail

해시 자료구조를 사용하면 정말 간단하게 풀 수 있는 문제이다.

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

int solution(vector<int> nums)
{
    int n = nums.size();
    map<int,int> m;
    for(int i=0;i<n;i++) m[nums[i]]++;
    return min((int)m.size(), n/2);//폰켓몬 가지수 와 골라야하는 수 중 작은 값
}

더간단한 풀이도 존재한다.
unordered_set을 사용한 방법이다.

#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> nums)
{
    unordered_set<int> s(nums.begin(), nums.end());
    return min(nums.size() / 2, s.size());
}

0개의 댓글