Develop/algorithm

이것이 코딩테스트다 1 모험가 길드

미니문92 2021. 11. 22. 01:03

문제 링크

모험가 N명이 있다. 각 모험가를 대상으로 공포도를 측정했다. 공포도가 X인 모험가는 반드시 X명 이상으로 구성해야 여행을 떠날 수 있을 때, 최대 몇개의 모험가 그룹을 만들 수 있는지를 구하시오

N = 5, 공포도 = 2 3 1 2 2 일 때, 최대 그룹수는 2 그룹이다.


Test Case

입력
5
2 3 1 2 2

출력
2


문제 풀이

알고리즘 재시작. 그리디부터 다시 시작해보련다. 한 세달밖에 안지났는데도 꽤 많이 까먹어서 당황스럽다.
스터디로 시작하는거니 이번에는 꼭 완주하기.
문제는 별다를건 없고, 조건문, 반복문 잘 써서 머리굴려서 풀면 된다.


Source Code

import sys
input = sys.stdin.readline

n = int(input())
data = list(map(int, input().split()))
data.sort()

ans = 0
cnt = 0
for man in data:
    cnt += 1
    if cnt >= man:
        ans += 1
        cnt = 1

print(ans)