문제링크
귤 고르기
설명
sort
를 이용해 tangerine
정렬
- 반복문 for에서
i
값과 i+1
값이 같으면 same + 1
i
와 i+1
이 다를때 count
에 (same+1)
값 추가 //같은 크기에 귤 개수를 배열화!
- count 배열
내림차순
으로 정리 (greater<>()
이용)
- 큰 값부터 차례대로
k
에서 빼기 (while (k > 0)
) -> erase
로 뺀 값 지우기
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int k, vector<int> tangerine) {
int answer = 0;
vector<int> count;
int same = 0;
sort(tangerine.begin(), tangerine.end());
for (int i=0; i<tangerine.size(); i++)
{
if (tangerine[i] == tangerine[i+1])
{
same++;
}else
{
count.push_back(same+1);
same = 0;
}
}
sort(count.begin(), count.end(), greater<>());
while (k>0)
{
k-=count.front();
answer++;
count.erase(count.begin());
}
return answer;
}