Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 최대 아이스크림 막대를 찾는 프로그램

<시간/>

n개의 요소가 있는 배열 비용이 있다고 가정합니다. 여기서 비용[i]은 동전으로 표시된 i번째 아이스크림 막대의 가격입니다. 우리는 처음에 사용할 수 있는 c 숫자 코인이 있고 가능한 한 많은 아이스크림 바를 사고 싶습니다. c 코인으로 살 수 있는 아이스크림 막대의 최대 개수를 찾아야 합니다.

따라서 입력이 비용 =[3,1,4,5,2], c =10과 같으면 총계에 대해 인덱스 0,1,2,4에서 아이스크림 막대를 구입할 수 있기 때문에 출력은 4가 됩니다. 3 + 1 + 4 + 2 =10의 가격.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 목록 비용 정렬

  • i:=0

  • 반면 i <비용의 크기 및 c>=비용[i], 수행

    • c :=c - 비용[i]

    • 나는 :=나는+1

  • 반환 i

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(costs, c):
   costs.sort()
   i=0
   while(i<len(costs) and c >= costs[i]):
      c = c-costs[i]
      i=i+1
   return i

costs = [3,1,4,5,2]
c = 10
print(solve(costs, c))

입력

[3,1,4,5,2], 10

출력

4