그리디 문제 : 모험가 길드 풀이
2021. 12. 7. 01:11ㆍ파이썬/알고리즘
한 마을에 모험가가 n명. 공포도가 x인 모험가는 반드시 x명 이상으로 여행을 떠날 수 있다.
n명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성.
X는 각 공포도를 가지고 있는 모험가의 list 이다.
예를 들어서 N이 5이고, X가 [2 3 1 2 2]일 때 최댓값은 2임.
풀이 : 정렬을 해준 뒤 그룹에 모험가를 하나씩 추가해준다. (group을 1 증가 시킨다.)
그 뒤에 모험가의 공포도와 그룹의 수가 같다면 출발시킨다. (result를 1 증가 시킨다.)
n = int(input())
k = list(map(int,input().split()))
k.sort()
group = 0
result = 0
for i in k:
group += 1
if i <= group:
result += 1
group = 0
print(result)반응형
'파이썬 > 알고리즘' 카테고리의 다른 글
| 그리드 문제 : 문자열 뒤집기 (0) | 2021.12.21 |
|---|---|
| 그리디 문제 : 곱하기 혹은 더하기 (0) | 2021.12.21 |
| 20. 최단 경로 : 다익스트라 알고리즘 (0) | 2021.11.18 |
| 19. 다이나믹 프로그래밍 : 타일 깔기, 효율적인 화폐 구성 (0) | 2021.11.17 |
| 18. 다이나믹 프로그래밍 : 개미 전사 (0) | 2021.11.17 |