nums라는 숫자 목록과 또 다른 두 개의 변수 k와 t가 있다고 가정합니다. 범위 [-k, k]에서 e라고 하는 요소를 선택하고 끝에 nums에 삽입하는 작업을 고려합시다. 숫자의 합이 target과 같도록 필요한 최소 작업 수를 찾아야 합니다.
따라서 입력이 nums =[3, 1] k =4 t =19와 같으면 [3, 1, 4, 4, 4, 3]과 같이 추가하여 합계 19를 얻을 수 있기 때문에 출력은 4가 됩니다. .
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
total :=nums에 있는 모든 요소의 합계
-
차이 :=|t - 총계|
-
결과 :=(diff/k)
의 바닥 -
결과 * k가 diff와 같지 않으면
-
결과 :=결과 + 1
-
-
반환 결과
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(nums, k, t): total = sum(nums) diff = abs(t - total) result = diff // k if result * k != diff: result = result + 1 return result nums = [3, 1] k = 4 t = 19 print(solve(nums, k, t))
입력
[3, 1], 4, 19
출력
4