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

Python에서 목표 합계를 얻는 데 필요한 최소 요소 추가를 찾는 프로그램

<시간/>

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