728x90
https://programmers.co.kr/learn/courses/30/lessons/1845
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
programmers.co.kr
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums){
int answer = 0;
vector<int> mon; //종
int cnt = 0;
int canTake = nums.size()/2;
for(int i=0; i<nums.size(); i++){
auto it = find(mon.begin(), mon.end(), nums[i]);
if(it == mon.end()) { //해당 값이 mon에 없다면
mon.push_back(nums[i]);
cnt++;
}
}
answer = canTake < cnt ? canTake : cnt;
return answer;
}
vector에서 폰켓몬 종류 개수를 찾기 위해서 nums를 돌면서 새로운 종류의 폰켓몬이 나오면 mons에 넣어주고, 카운팅을 해줬다.
이를 위해서 Iterator와 find() 함수를 사용했다.
그리고, 만약 가질 수 있는 폰켓몬의 개수보다 폰켓몬의 종류의 개수가 더 많다면 가질 수 있는 폰켓몬의 개수를 출력해주고, 폰켓몬의 종류 개수가 더 적다면 폰켓몬의 종류 개수를 출력해줬다.
answer = canTake < cnt ? canTake : cnt;
//canTake : 가질 수 있는 폰켓몬의 개수
//cnt : 폰켓몬 종류 수
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv2] 소수 찾기 (0) | 2022.08.07 |
---|---|
[프로그래머스/c++] 소수 만들기 (0) | 2022.04.05 |
[프로그래머스/c++] 예산 (0) | 2022.04.05 |
[프로그래머스/c++] 나머지가 1이 되는 수 찾기 (0) | 2022.04.01 |
[프로그래머스/c++] 로또의 최고 순위와 최저 순위 (0) | 2022.04.01 |