문제
- 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. 파이썬)
'코딩테스트 > 👩💻 이코테' 카테고리의 다른 글
| [이코테/구현] 럭키 스트레이트 (1) | 2023.09.05 |
|---|---|
| [이코테/greedy]문자열 뒤집기 (0) | 2023.09.04 |
| [이코테/greedy]곱하기 혹은 더하기 (0) | 2023.09.04 |
| [dfs/bfs] 연구소 (0) | 2023.08.31 |
| [dfs/bfs]특정 거리의 도시 찾기 (0) | 2023.08.28 |