안녕 세상아,

[프로그래머스/c++] Lv1 폰켓몬 본문

프로그래머스

[프로그래머스/c++] Lv1 폰켓몬

돈 많은 백수가 되고싶다 2024. 10. 6. 14:56

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. nums 벡터에 중복된 숫자가 있기 때문에 set 컨테이너 사용한다. 

2. nums 값을 s에 넣는다. 이때 중복 제거됨

3. 만약 s.size()가 nums.size()/2보다 크거나 같으면 answer에 nums.size()/2를 넣는다. 

4. 작으면 answer에 s.size()를 넣는다. 

#include <vector>
#include <algorithm>
#include <set>
using namespace std;

int solution(vector<int> nums)
{
    int answer = 0;
    int num = nums.size() / 2;
    set<int> s;

    for (int i = 0; i < nums.size(); i++) {
        int x = nums[i];
        s.insert(x);
    }

    int cnt = s.size();

    if (cnt >= num) {
        answer = num;
    }
    else {
        answer = cnt;
    }
    return answer;
}

 

set 알기만하면 쉬운 편!