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