-
[프로그래머스] 폰켓몬문제 풀이 2020. 5. 28. 16:53
풀이)
어려운 문제는 아니였지만 풀이 방법이 여러가지가 있어 남겨본다.
나같은 경우는 vector를 정렬해서, 중복되는 원소들을 지우는 코드를 사용했는데
다른 분들은 unordered_map, unordered_set을 사용했다.
vector의 unique함수 사용 코드)
#include <vector> #include <algorithm> using namespace std; int solution(vector<int> nums) { int count = nums.size()/2; sort(nums.begin(),nums.end()); nums.erase(unique(nums.begin(),nums.end()),nums.end()); return count < nums.size()? count : nums.size(); }
unordered_map 사용코드)#include <vector> #include <unordered_map> using namespace std; int solution(vector<int> nums) { unordered_map<int, int> hash; for (auto num: nums) { hash[num] += 1; } return min(hash.size(), nums.size() / 2); }
unordered_set 사용코드)
#include <unordered_set> using namespace std; int solution(vector<int> nums) { unordered_set<int> hash(nums.begin(), nums.end()); return min(hash.size(), nums.size() / 2);
}
'문제 풀이' 카테고리의 다른 글
[프로그래머스] 다음 가장 큰 수 (0) 2020.05.28 [프로그래머스] 기둥과 보 (0) 2020.05.28 [프로그래머스] 튜플 (0) 2020.05.27 [프로그래머스] 자물쇠와 열쇠 (0) 2020.05.27 [프로그래머스] 문자열 압축 (0) 2020.05.26