💻 입력 조건
💻 출력 조건
💻 입력 예시 1
5
2 3 1 2 2
💻 출력 예시 2
2
📖 문제 해결
입력 받은 모험가의 공포도 값 리스트를 sort()
함수로 정렬한 후 공포도가 작은 사람부터 하나 씩 그룹에 넣어가며, 그룹이 형성 조건(공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있음)에 위배되지 않으면 그룹으로 형성하도록 코드를 작성하였습니다.
구체적으로 설명하자면, append()
함수를 이용하여 group_list
에 모험가를 넣을 때마다 max()
함수를 이용하여 공포도의 최대치를 항상 확인하면서 조건을 따져볼 수 있도록 하였습니다.
N = int(input())
input_list = list(map(int,input().split()))
input_list.sort()
group_list = []
group_count = 0
while len(input_list) > 0:
# group_list에 공포도가 가장 작은 모험가 추가
group_list.append(input_list.pop(0))
# 조건을 성립하면 그룹으로 인정하고, group_count += 1
if len(group_list) == max(group_list):
group_count += 1
group_list = []
print(group_count)