[백준] 27313. 효율적인 애니메이션 감상(python, 파이썬)

giggle·2023년 5월 12일
0

문제

27313. 효율적인 애니메이션 감상


📌 아이디어

K개씩 묶어서 한 번에 볼 수 있는 최대 개수를 도출해야되므로 오름차순 정렬을 통해 시간이 작은 순부터 탐색하는 것이 이 문제의 핵심입니다.

  1. 애니메이션 상영 시간을 오름차순으로 정렬합니다.
  2. 애니메이션 인덱스가 묶을 수 있는 개수보다 작은 경우 묶은 꾸러미의 시간은 현재 애니메이션의 시간입니다.
  3. 그 반대의 경우는 꾸러미의 시간에 현재 애니메이션의 시간을 더해줍니다.
  4. 위에서 계산한 시간에 주어진 최대 시간보다 작은 경우의 횟수가 곧 애니메이션의 최대 개수입니다.

📌 코드

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))




피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.

0개의 댓글