사람 수와 마일리지가 주어진다.
매번 각 사람이 마일리지를 얼마나 넣었는지 주어진다.
✔️ 경우의 수
경우의 수를 이용하여 구현하면 된다.
import sys
import heapq
read = sys.stdin.readline
n, m = map(int, read().split())
heap = []
for i in range(n):
p, l = map(int, read().split())
people = list(map(int, read().split()))
people.sort(reverse=True)
mil = people[-1]
if l > p:
heapq.heappush(heap, 1)
else:
heapq.heappush(heap, people[l-1])
res = 0
answer = 0
# heap에 데이터가 저장되어 있고, 주어진 마일리지보다 작거나 같다면
while heap and m - heap[0] >= 0:
find_data = heapq.heappop(heap)
m -= find_data
answer += 1
print(answer)