-
[프로그래머스/Level 2] 폰켓몬 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 9. 15:43
programmers.co.kr/learn/courses/30/lessons/1845
벡터 nums의 크기의 2분의 1개 만큼 폰켓몬을 뽑는데, 가장 많은 종류의 폰켓몬을 뽑아야 하는 문제다.
벡터의 원소를 set을 선언하여 전부 넣어주면 중복된 값이 사라진다. 이때 set의 크기가 nums의 크기의 2분의1 보다 크거나 같으면 그냥 nums의 크기의 2분의 1을 리턴하면 되고, set의 크기가 더 작다면 set의 크기를 리턴하면 답이된다.
#include <vector> #include <set> using namespace std; int solution(vector<int> nums) { int answer = 0; set<int> s; for(int i = 0; i < nums.size(); i++) { s.insert(nums[i]); } if(s.size() >= nums.size() / 2) return nums.size() / 2; else return s.size(); }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 2] 행렬의 곱셈 (C++) (0) 2020.11.09 [프로그래머스/Level 2] 최솟값 만들기 (C++) (0) 2020.11.09 [프로그래머스/Level 2] N개의 최소공배수 (C++) (0) 2020.11.09 [프로그래머스/Level 2] 숫자의 표현 (C++) (0) 2020.11.09 [프로그래머스/Level 2] 땅따먹기 (C++) (0) 2020.11.06