문제에서 그룹지을 수 있는 최대 수를 구하는 문제다.
굳이 사람을 안 데려가도 된다고 한다.
-> 이를 통해 작은 숫자를 오름차순으로 나열하면 많은 그룹수를 낼수 있다고 생각을 했다.
임시 변수 설정하는 부분은 고심하면 짤 수 있다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int>v(n);
for (int i = 0; i < n; i++)
{
cin >> v[i];
}
sort(v.begin(), v.end());
int result = 0;
int cnt = 0;
for (int i = 0; i < v.size(); i++)
{
cnt += 1;
if (cnt >= v[i])
{
cnt = 0;
result += 1;
}
}
cout << result;
return 0;
}