N

(프로그래머스 c++)폰켓몬 본문

프로그래머스 알고리즘/2단계

(프로그래머스 c++)폰켓몬

naeunchan 2020. 5. 22. 10:10
728x90
반응형

문제는 길지만 막상 풀어보면 쉬운 문제다..!

우선 max = 가져갈 수 있는 폰켓몬의 수이므로 nums.size() / 2를 넣어준다.

그리고 같은 종류는 가져가지 않도록 check[200001] = {false, }로 하여 체크하도록 한다.

 

for문으로 answer == max 일 때까지 반복한다.

만약 check[nums[i]] == false라면 처음 가져가는 폰켓몬의 종류이므로 answer++을 해주고,

해당하는 종류 번호를 true로 바꿔주면 끝..!

#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> nums)
{
    int answer = 0, max = nums.size() / 2;
    bool check[200001] = {false, };
    
    sort(nums.begin(), nums.end());
    
    for(int i = 0; i < nums.size(); i++)
    {
        if(answer == max)
            return answer;
        if(check[nums[i]] == false)
        {
            check[nums[i]] = true;
            answer++;
        }
    }
}
728x90
반응형