-
[그리디 알고리즘] 모험가 길드 ★☆☆Algorithms/Greedy Algorithm 2021. 2. 17. 18:28
문제 : 모험가 그룹을 구성할 때 공포도가 X인 모험가는 X명 이상의 그룹에 참여해야 한다. 그 가짓수는?
입력 조건
- 첫째 줄에 모험가 수 N이 주어진다 (1<=N<=100,000)
- 둘째 줄에 각 모험가의 공포도 값을 N이하의 자연수로 주어지며 공백으로 구분한다
출력 조건
- 여행을 떠날 수 있는 그룹 수의 최댓값을 출력한다
입력 예시
5
2 3 1 2 2출력 예시
2
공포도 값이 가장 낮은 모험가부터 순서대로 그룹을 지어주면 된다
#include<bits/stdc++.h> using namespace std; int n; int gut[10]; int ans; int gnum; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0;i < n;i++) cin >> gut[i]; sort(gut, gut + n); for (int i = 0;i < n;i++) { gnum++; if (gut[i] == gnum) { ans++; gnum = 0; } } cout << ans; return 0; }
'Algorithms > Greedy Algorithm' 카테고리의 다른 글
[그리디 알고리즘] 문자열 뒤집기 ★☆☆ (0) 2021.02.17 [그리디 알고리즘] 곱하기 혹은 더하기 ★☆☆ (0) 2021.02.17 [그리디 알고리즘] 1이 될 때까지 ★☆☆ (0) 2021.02.09 [그리디 알고리즘] 큰 수의 법칙 ★☆☆ (0) 2021.02.09 [그리디 알고리즘] 문제풀이 전략 (0) 2021.02.09