프로그래밍/코딩테스트 공부
[이코테] Greedy 문제 - 1. 모험가 길드
진박사.
2021. 9. 5. 15:52
문제 : 공포도가 N인 모험가는 N명 이상의 모험가 그룹에 참여해야 모험을 떠날 수 있다. N명의 공포도가 주어졌을 때 최대로 떠날 수 있는 모험가 그룹의 수를 구하시오.
입력조건 : 첫째줄은 N(1~100000), 둘째줄은 공포수(자연수) 공백 구분
n = int(input())
fear = list(map(int, input().split()))
g_num = 0
fear.sort()
fear = fear[::-1]
group = []
while fear:
if not group: #그룹이 비어있으면
group.append(fear.pop())
if max(group) > len(group): # 최대 공포수가 그룹 인원수보다 클 때
group.append(fear.pop())
else: #최대 공포수가 그룹 인원수보다 작거나 같다면
g_num += 1 #그룹수 증가
group = [] #그룹 초기화
print(g_num)
결과 : input 값을 random으로 넣어서 정답이랑 비교해봄. 맞는듯