728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 내용, 조건, 예시는 프로그래머스 사이트 참조
문제에서 우선적으로 해결해야할 부분은 중복된 폰켓몬 번호를 제거하는 것이다.
예시 설명에 "최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에"라고 나와 있기 때문이다.
vector에 저장된 중복을 제거하는 방법은 아래의 링크에 정리해 놨으니 참고하면 됩니다.
[C++ STL] vector 중복 제거 방법(sort, unique, erase) (set, unordered_set)
vector nums를 중복 제거한다면 1.sort, unique, erase 함수를 활용 HTML 삽입 미리보기할 수 없는 소스 2. set, unordered_set 구조 활용 HTML 삽입 미리보기할 수 없는 소스
workingdog.tistory.com
저는 set을 이용해서 중복제거를 했고 정렬이 필요없기 때문에 unordered_set을 사용
결과
- 중복제거된 개수 >= N/2 → N/2
- 중복제거된 개수 < N/2 → 중복제거된 개수
로 결론을 내릴 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <vector> #include <algorithm> #include <unordered_set> using namespace std; namespace programmers { int solution(vector<int> nums) { int answer = 0; unordered_set<int> s(nums.begin(), nums.end()); answer = min(nums.size() / 2, s.size()); return answer; } | cs |
↓↓↓↓↓↓ 유익했다면 하트 뿅 ♥ ↓↓↓↓↓↓
728x90
반응형
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
Lv1_[K번째수, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.01.10 |
---|---|
Lv1_[두 개 뽑아서 더하기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.01.03 |
Lv1_[실패율, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2022.12.23 |
Lv1_[로또의 최고 순위와 최저 순위, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (1) | 2022.12.23 |
Lv1_[완주하지 못한 선수, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2022.12.16 |
댓글