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

Python에서 Equal Array Elements II로의 최소 이동


비어 있지 않은 정수 배열이 있다고 가정하고 모든 배열 요소를 동일하게 만드는 데 필요한 최소 이동 수를 찾아야 합니다. 여기서 이동은 선택한 요소를 증가 또는 감소시키는 것입니다. 따라서 배열이 [1, 2, 3]과 같을 때 1이 2로 증가하고 3이 2로 감소하므로 출력은 2가 됩니다.

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

  • 배열 번호 정렬
  • 카운터를 0으로 설정
  • 숫자 단위로 i에 대해 다음을 수행합니다.
    • 카운터 :=카운터 + 절대값 (i – nums[숫자의 길이 / 2])
  • 반품 카운터

예제(파이썬)

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def minMoves2(self, nums):
      nums.sort()
      counter = 0
      for i in nums:
         counter += abs(i-nums[len(nums)//2])
      return counter
ob1 = Solution()
print(ob1.minMoves2([2,5,3,4]))

입력

[2,5,3,4]

출력

4