문제
K개씩 묶어서 한 번에 볼 수 있는 최대 개수를 도출해야되므로 오름차순 정렬을 통해 시간이 작은 순부터 탐색하는 것이 이 문제의 핵심입니다.
N, M, K = map(int, input().split())
lst = list(map(int, input().split()))
# 최대 개수를 도출하기 위해 오름차순으로 탐색합니다.
lst.sort()
ani = []
for i in range(N):
time = 0
# 꾸러미가 가능한 경우
if i < K:
time = lst[i]
# 꾸러미가 불가능한 경우
else:
time = ani[i-K] + lst[i]
if time <= M:
# 시청할 수 있는 애니
ani.append(time)
else:
break
print(len(ani))
피드백 및 개선점은 댓글을 통해 알려주세요😊