728x90
반응형
풀이 문제 : 프로그래머스 코딩테스트 고득점 Kit - 해시 level1 : 폰켓몬
풀이 언어 : C++
알고리즘 : 그리디
문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/1845
문제요약
N마리의 폰켓몬이 주어질 때 N/2 마리를 가져갈 수 있는데,
최대한 다양한 종류의 폰켓몬을 가져간다면 몇 종류인지 알아내야한다.
접근 방식
만약 모든 N마리의 폰켓몬이 다른 종류의 폰켓몬이라면, 답은 N/2 가 될 것이다.
한편, 종류가 하나라면 답은 1이 될 것이다.
이렇게 생각한 것을 바탕으로 N/2 와 종류의 개수 중 더 적은 수가 답이 될 것이라고 생각했다.
코드
#include <vector>
#include <set>
using namespace std;
int solution(vector<int> nums)
{
int answer = 0;
int half = nums.size() /2;
set <int> s(nums.begin(),nums.end());
int kind = s.size();
if(half < kind) answer = half;
else answer = kind;
return answer;
}
폰켓몬의 종류를 계산해주기 위해 set 자료구조를 이용하여 크기를 구했다.
회고
Set 자료구조 선언하는 방법 확인하기
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 : C++ (0) | 2023.01.15 |
---|---|
[프로그래머스] 완주하지 못한 선수 : C++ (0) | 2023.01.14 |
[프로그래머스] 구명보트 / C++ (0) | 2022.04.20 |