코딩테스트/프로그래머스 [C++] 포켓몬 - [문제] https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 처음에 백트래킹을 써야하나 헷갈렸던 문제. 하지만 다시 생각해보니 생각보다 쉽게 해결이 되었다. 우선, set을 써서 중복값을 제거한 key value값을 얻자. 그렇게 값을 얻은 크기의 2배가 포켓몬 숫자보다 적다면 크기를 return 하고 아니라면 포켓몬 숫자의 / 2를 한 값을 return 하자. [코드] #include <vector> #include <set> #include <iostream> using namespace std; int solution(vector<int> nums) { int answer = 0; set<int> s(nums.begin(),nums.end()); //set을 써서 중복값을 제거하였다. if(s.size() * 2 <= nums.size()){ // 만일 중복체크한 set 값의 2배가 포켓몬 숫자보다 작다면 answer = s.size(); //답은 중복체크한 값 } else if(s.size() * 2 > nums.size()){ //만일 아니라면 answer = nums.size() / 2; //답은 포켓몬 숫자 / 2 } return answer; } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Yoon-1212 Contents 당신이 좋아할만한 콘텐츠 [C++] 위장 2022.12.03 [C++] 전화번호 목록 2022.12.03 [C++] 완주하지 못한 선수 2022.12.03 [C++] 모의고사 2022.11.15 댓글 0 + 이전 댓글 더보기