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

Python에서 1과 2의 배열을 합이 같은 두 부분으로 나눌 수 있는지 확인하십시오.

<시간/>

1과 2만 저장하는 배열 num이 있다고 가정합니다. 배열을 두 부분으로 나누어 각 부분의 요소 합이 같도록 할 수 있는지 확인해야 합니다.

따라서 입력이 nums =[1, 1, 2, 2, 2]와 같으면 이 배열을 [1, 1, 2] 및 [2, 2] 합과 같이 나눌 수 있으므로 출력은 True가 됩니다. 각 부분은 4입니다.

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

  • 총계 :=0, one_count :=0
  • total :=nums의 모든 요소의 합
  • one_count :=1의 개수(숫자)
  • 합계가 짝수이면
    • 거짓을 반환
  • (total / 2)의 정수 부분이 짝수이면
    • 참 반환
  • one_count> 0이면
    • 참 반환
  • 그렇지 않으면
    • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

def solve(nums):
   total = 0
   one_count = 0
   total = sum(nums)
   one_count = nums.count(1)
   if total % 2:
      return False
   if (total // 2) % 2 == 0:
      return True
   if one_count > 0:
      return True
   else:
      return False
nums = [1, 1, 2, 2, 2]
print(solve(nums))
반환

입력

[1, 1, 2, 2, 2]

출력

True