[C++] 프로그래머스 : 폰켓몬

Kim Nahyeong·2022년 1월 7일
0

프로그래머스

목록 보기
1/38
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int> nums)
{
    int answer = 0;
    int N = nums.size() / 2;
    printf("%d", N);

    sort(nums.begin(), nums.end());
    nums.erase(unique(nums.begin(), nums.end()), nums.end());

    if(N <= nums.size()){
        answer = N;
    } else {
        answer = nums.size();
    }

    return answer;
}

코드 설명

최대 고를 수 있는 폰켓몬의 수를 구하는 것이므로 폰켓몬의 종류 수를 먼저 구한다. 때문에 sort, erase, unique를 사용하여 중복되는 폰켓몬을 삭제시켰다. -> 선택할 수 있는 폰켓몬의 종류만 남게 된다.
만약 선택(N/2)이 총 선택할 수 있는 폰켓몬의 수보다 적다면, 선택만큼만 고를 수 있는 것이고 만약 선택이 더 많다면 폰켓몬의 수가 정답이다.

후기

처음 풀어본 프로그래머스 문제. 뭣도 모르고 Level 1 시험 쳐보겠다고 들어갔다가 한 문제만 겨우 맞추고 나왔다...
백준이랑 다른 점은

  • 주어진 매개변수를 이용해서 문제를 풀어야한다.
  • print 문이 아니라 answer에 값을 넣어줘야한다.

이 단순한 두가지때문에 엄청 해멨다.

0개의 댓글