-
[알고리즘] 이코테 - 모험가 길드알고리즘 2022. 7. 20. 17:18728x90
문제
한 마을에 모험가 N 명이 있을때, N명은 각각의 공포도를 가지고 있다.
공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있다.
이때 여행을 떠날 수 있는 그룹 수의 최댓 값 구하기
접근
모험가는 각각이 다른 공포도를 가지고 있고 X공포도는 X의 인원이 있어야 하므로 오름차순이 필요하다.
공포도에 대한 리스트를 오름차순을 해주고, 리스트 안에 있는 데이터에서 한 여행에 있는 모험가의 수를 초기화 시켜주며 문제를 풀면된다
풀이
import sys sys.setrecursionlimit(10**9) input = sys.stdin.readline n = int(input()) data = list(map(int, input().split())) # 공포도를 오름차순으로 나누기 data.sort() # 그룹수 groupCount = 0 # 인원 count = 0 for i in data: count += 1 if count >= i: groupCount += 1 count = 0 print(groupCount)
'알고리즘' 카테고리의 다른 글
[알고리즘] 이코테 - 볼링공 고르기 ( 2019 SW 마에스트로 입학 테스트 ) (0) 2022.07.21 [알고리즘] 이코테 - 만들 수 없는 금액 (0) 2022.07.21 [알고리즘] 백준 1439 문자열 뒤집기 (0) 2022.07.21 [알고리즘] 이코테 - 곱하기 혹은 더하기 (0) 2022.07.21 [알고리즘] 백준 - 1240 노드 사이의 거리 (0) 2022.07.20