[코딩테스트] [프로그래머스] 폰켓몬

김민정·2025년 9월 16일
0

코딩테스트

목록 보기
15/33
post-thumbnail

문제

https://school.programmers.co.kr/learn/courses/30/lessons/1845


풀이

  1. [key(종류), value(빈도)] 쌍을 관리하는 unordered_map을 생성한다.

  2. unordered_map 크기는 폰켓몬 종류 개수이므로 (nums 크기 / 2)보다 작거나 같다면 해당 맵의 크기를 반환한다.

  3. 종류 개수가 (nums 크기 / 2)보다 크다면 반대로 (nums 크기 / 2)를 반환한다.


코드

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

int solution(vector<int> nums)
{
    unordered_map<int, int> frequency;
    for(int i : nums)
    {
        frequency[i]++;
    }
    
    if (frequency.size() <= nums.size() / 2)
    {
        return frequency.size();
    }
    
    return nums.size() / 2;
}
profile
📝 공부노트

0개의 댓글