[프로그래머스/C++]Lv.1 - 폰켓몬

YH J·2023년 6월 1일
0

프로그래머스

목록 보기
107/168

문제 링크

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

내 풀이

set 사용해서 nums원소의 가짓수 구한 다음 nums.size/2보다 크면 nums.size()/2를 리턴하고 작으면 set의 size를 리턴

내 코드

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

int solution(vector<int> nums)
{
    int answer = 0;
    set<int> ss;
    for(int n : nums)
        ss.insert(n);
    
    if(ss.size() >= nums.size() / 2)
        answer = nums.size() / 2;
    else
        answer = ss.size();
    
    return answer;
}

다른 사람의 풀이

#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> nums) {
    unordered_set<int> s(nums.begin(), nums.end());

    return min(nums.size() / 2, s.size());
}

다른 사람의 풀이 해석

min 함수 사용

profile
게임 개발자 지망생

0개의 댓글