그리디 - 1번 모험가 길드

·2021년 9월 24일
0

이코테_알고리즘

목록 보기
10/23

풀이전략

  • 문제에서 그룹지을 수 있는 최대 수를 구하는 문제다.

  • 굳이 사람을 안 데려가도 된다고 한다.
    -> 이를 통해 작은 숫자를 오름차순으로 나열하면 많은 그룹수를 낼수 있다고 생각을 했다.

  • 임시 변수 설정하는 부분은 고심하면 짤 수 있다.

소스코드

#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;
}
profile
🔥🔥🔥

0개의 댓글