[프로그래머스] 폰켓몬(C++)
by atomic0x90 (Yujun Han)
[프로그래머스] 폰켓몬 풀이 (찾아라 프로그래밍 마에스터)
https://programmers.co.kr/learn/courses/30/lessons/1845
이 문제는 폰켓몬의 종류가 어떤 게 있는지 카운팅 하면 된다.
문제 풀이
- 폰켓몬 종류 번호의 개수를 저장하는 num 배열을 만든다.
- nums 벡터를 순차 탐색하여 num 배열에 폰켓몬 종류의 개수를 카운팅 한다.
- num 배열의 값이 0이 아니면 해당 번호의 폰켓몬이 존재한다는 의미이다.
- 해당 번호의 폰켓몬이 존재하면 폰켓몬 종류(check)를 카운팅 한다.
- 2/N 마리의 폰켓몬을 선택해야 한다.
- 총 폰켓몬 종류(check)가 2/N 보다 많으면 2/N를 return 한다.
- 총 폰켓몬 종류(check)가 2/N 보다 적으면 check를 return 한다.
정답 코드
#include <vector>
using namespace std;
int solution(vector<int> nums){
int N = nums.size();
int num[200001] = {0,};
int check = 0;
for(int i = 0;i < nums.size();i++) num[nums[i]]++;
for(int i = 1;i < 200001;i++){
if(num[i] != 0)
check++;
}
int answer = 0;
if(check >= N/2)
answer = N/2;
else
answer = check;
return answer;
}
감사합니다.
홈으로 가기 | 더 많은 programmers post 보기 | post 목록 보기 |
---|---|---|