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