공포도가 1인 모험가가 1인 그룹을 최대한 많이 결성하는 것이 이 문제에서 최적의 해를 구할 수 있는 방법이다
공포도가 높은 모험가는 마지막에 그룹에 포함되지 않게 해야하기 때문에 공포도가 제일 작은 모험가부터 그룹을 차례로 결성해야하기 때문에 그리디 기법을 사용하는 것이 옳다.
n = int(input())
m = list(map(int,input().split()))
m = sorted(m)
cnt=0
result = 0
for x in range(len(m)):
cnt+=1
if cnt>=m[x]:
result+=1
cnt=0
print(result)
그리디 기법이 용이한지 검토하는 부분이 중요한 문제이다.
공포도가 낮은 모험가부터 묶는게 좋은지 높은 모험가부터 묶는게 좋은지를 잘 판별해야 한다.