nums라는 배열과 두 개의 값 제한 및 목표가 있다고 가정합니다. |nums[i]| 때문에 배열이 특별합니다. <=모든 i에 대한 제한은 0에서 배열의 크기 - 1까지입니다. 배열의 합이 목표와 같게 하려면 삽입할 요소의 최소 수를 찾아야 합니다. 배열 요소는 제한 값을 초과할 수 없습니다.
따라서 입력이 nums =[2,-2,2], limit =3, goal =-4와 같으면 출력은 2가 됩니다. 왜냐하면 우리는 2(-3)를 더할 수 있기 때문입니다. [2,-2,2,-3,-3]
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s :=숫자에 있는 모든 요소의 합
-
ab :=|목표 - 초|
-
(ab / limit)
의 상한을 반환합니다.
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
from math import ceil def solve(nums, limit, goal): s = sum(nums) ab = abs(goal - s) return ceil(ab / limit) nums = [2,-2,2] limit = 3 goal = -4 print(solve(nums, limit, goal))
입력
[2,-2,2], 3, -4
출력
2.0