티스토리 뷰

# 모험가 길드
#공포도가 높은 모험가는 위기 상황에서 대처할 능력 떨어짐=> 공포도가 x인 모험가 반드시 x명이상 여행 갈때만 포함하자!
# 생성할 수 있는 최대 그룹 수 구하기(몇 명은 남아있어도 됨, 경우의 수 아님!)

# 사람 수와 각 사람별 공포도 입력
n = int(input()) 
x = list(map(int, input().split()))

#가장 큰 숫자부터 빼기 위해 정렬
x.sort() 

#그룹 수의 최댓값: 처음에는 0임
group = 0

while n >=x[n-1]: #주어진 수가 제일 큰 숫자 이상일 때 그룹 수 세기 가능
    n-= x[n-1] #현재 남은 수 중에서 제일 큰 수 만큼 빼기
    group+=1 #그룹 최대 숫자 +1
    if n==0: #남은 사람이 없을 때는 반복문 빠져나와서 그룹 최대 수 출력하기
        break

print(group)

 

댓글