코딩테스트/👩💻 이코테
[이코테/greedy] 모험가 길드
병아리는삐약삐약
2023. 9. 4. 14:46
문제
- n명의 모험가는 각각 공포도를 가지고 있다
- 모험가 그룹을 구성하려고 할 때,
- 공포도가 X인 모험가는 반드시 X명 이상으로 모험가 그룹을 구성해야 한다
- N명의 모험가에 대한 정보가 주어질 때, 만들 수 있는 그룹의 최댓값을 구하시오
정답
# ========== [1] ============
n = int(input())
pp = list(map(int,input().split()))
pp.sort()
gcnt = 0
cnt = 0
# ========== [2] ============
for i in pp:
cnt+=1
if cnt>=i:
gcnt+=1
cnt=0
풀이
공포도를 기준으로 오름차순 정렬을 한 후,
cnt 변수를 이용해서 모험가를 차례대로 포함시키고 ( +1 씩 증가시켜)
포함된 모험가의 수가 현재 확인하고 있는 공포도보다 크거나 같다면 ( cnt >= i )
그룹에 포함시킨다 (gcnt +=1)
참조
이것이 취업을 위한 코딩테스트다(with. 파이썬)