[프로그래머스 문제풀이] 2. 폰켓몬

WIGWAG·2023년 1월 1일
0

프로그래머스

목록 보기
2/32

※ 해시테이블을 이용하는 unordered 연관 컨테이너를 사용함

nums집합에서 (사이즈/2)만큼 선택해야 하기 때문에 최대로 (사이즈/2)만큼 가질 수 있지만
nums집합의 원소 종류가 (사이즈/2)보다 작을 수도 있다.

따라서 원소 종류 개수와 (사이즈/2) 중 작은 값이 답이다.

unordered_set집합에 nums의 원소들을 넣어서 중복을 없앤다.

#include <unordered_set>
#include <iostream>
#include <algorithm>

using namespace std;

int solution(vector<int> nums)
{
    unordered_set<int> s(nums.begin(), nums.end());

    return min(nums.size() / 2, s.size());
}

int main()
{
    cout << solution({ 3,1,2,3 }) << '\n';
    cout << solution({ 3,3,3,2,2,4 }) << '\n';
    cout << solution({ 3,3,3,2,2,2 }) << '\n';
}

실행 결과

2
3
2


폰켓몬 문제 링크

profile
윅왁의 프로그래밍 개발노트

0개의 댓글