1) 한 마을에 모험가가 N명
2) 모험가별로 가지고 있는 ‘공포도’가 다르다.
3) 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여 최대 몇 그룹이 탄생하는가?
split의 결과를 매번 int로 변환해주려니 귀찮습니다. 이때는 map을 함께 사용하면 됩니다. map에 int와 input().split()을 넣으면 split의 결과를 모두 int로 변환해줍니다(실수로 변환할 때는 int 대신 float를 넣습니다.).
변수1, 변수2 = map(int, input().split())
변수1, 변수2 = map(int, input().split('기준문자열'))
변수1, 변수2 = map(int, input('문자열').split())
변수1, 변수2 = map(int, input('문자열').split('기준문자열'))
묶이는 족족 그룹 인원수를 증가
최대한 작은 공포도부터 그룹에 묶다가 그룹에 속한 인원 수보다 현재 모험가의 공포도가 작거나 같을 때 분리
def solution(n):
n = int(input())
group = list(map(int, input().split()))
group_count = 0
total_count = 0
for i in group:
group_count += 1
if i <= gropu_count:
total_count += 1
return total_group
n = int(input())
data = list(map(int, input().split()))
data.sort()
result = 0 #총 그룹의 수
count = 0
for i in data: #공포도를 낮은것부터 하나씩 확인하며
count += 1 #현재 그룹에 해당 모험가를 포함시키기
if count >= i: #현재 그룹에 포함된 모험가의 수가 현재 공포도 이상이라면, 그룹형성
result += 1 #총 그룹의 수 증가시키기
count = 0 #현재 그룹에 포함된 모험가의 수 초기화
print(reuslt) # 총 그룹의 수 출력