[프로그래머스]폰켓몬(C++)
🤔문제 해석
총 폰켓몬 수 N 중에서 N/2만큼 데려갈 수 있다.
그 때 최대한 많은 종류의 폰켓몬을 데려갈 수 있는 종류 수를 return하라.
❗ 제한 조건
-nums는 폰켓몬의 종류 번호가 담긴 1차원 배열
-nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수
-폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수
-가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return
😏풀이
sort() 함수를 사용하여 num을 정렬한다. (=>algorithm include 필요)
int값들로 이루어진 vector를 정렬했기 때문에 vector의 길이만큼 반복문을 돌며 다음 값이 앞의 값보다 크면 다른 경우이므로 cnt++
구해진 cnt값이 N/2보다 크면 N/2를 return
아닌 경우에는 cnt를 return한다.
💻코드
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums)
{
int cnt = 1;
int pick = nums.size() / 2;
int answer = 0;
sort(nums.begin(), nums.end());
for(int i= 0; i < nums.size() - 1; i++){
if(nums[i] < nums[i + 1]) cnt++;
}
if(cnt > pick) answer = pick;
else answer = cnt;
return answer;
}
Author And Source
이 문제에 관하여([프로그래머스]폰켓몬(C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yr4528/폰켓몬C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)