728x90
https://programmers.co.kr/learn/courses/30/lessons/1845
문제 풀이
폰켓몬들의 개수만 따지면 되는 문제이다.
따라서, 중복되는 요소들을 제거하고 그 중에서 N/2개 만큼만 가져가면 된다.
N/2보다 중복요소가 제거된 배열의 사이즈가 작다면 배열의 사이즈가 정답이 되고, 아니라면 N/2가 정답이다.
느낀 점
처음에 DPS로 풀으려고 했다가 코드가 너무 길어지는 것 같아서 의구심을 가지고 다른 분들의 코드를 살펴봤다. 그냥 단순하게 개수 자체만 따지면 되는 문제이다.
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums) {
int answer = 0;
int n = nums.size() / 2;
sort(nums.begin(), nums.end());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
if (nums.size() > n) answer = n;
else answer = nums.size();
return answer;
}
'문제 풀이 > 프로그래머스 (Programmers)' 카테고리의 다른 글
[C++] 프로그래머스 : 키패드 누르기 (0) | 2021.09.13 |
---|---|
[C++] 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2021.07.01 |
[C++] 프로그래머스 : 완주하지 못한 선수 (0) | 2021.07.01 |
[C++] 프로그래머스 : 소수 만들기 (LvL 1) (0) | 2021.05.24 |
[Java] 프로그래머스 : 멀쩡한 사각형 (0) | 2021.04.13 |
댓글