티스토리 뷰

문제 링크

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. �

programmers.co.kr

 

 

풀이

return 하는 값이 폰켓몬 종류의 최대값이므로 내가 몇 마리의 폰켓몬을 선택했는지는 알려주지 않아도 된다.

따라서, 폰켓몬 nums 배열을 sort한 후 같은 폰켓몬을 고르지 않으면서 num.size()/2 만큼 고르게 되거나 num.size()안에서 최대 폰켓몬 종류 개수를 return 하면된다.

 

 

 

더보기
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> nums)
{
    int answer = 0;
    sort(nums.begin(), nums.end());
    
    int repeat = nums[0];
    answer++;
    for(int i=1; i<nums.size(); i++)
    {
        if(answer >= nums.size()/2) { break; }
        if(repeat != nums[i])
        {
            answer++;
            repeat = nums[i];
        }
    }
    
    return answer;      // 폰켓몬 종류 개수 최대값
}
728x90
반응형
댓글
01-10 09:46
링크