num이라는 배열이 있다고 가정해 보겠습니다. 배열에 다른 모든 요소의 합과 같은 값을 가진 요소가 포함되어 있는지 확인해야 합니다.
따라서 입력이 nums =[3,2,10,4,1]과 같으면 출력은 True, 10 =(3+2+4+1)이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- freq :=빈 지도
- 총계:=0
- 0부터 숫자 - 1까지의 범위에 있는 i에 대해
- 주파수[숫자[i]] :=빈도[숫자[i]] + 1
- 총계 :=총계 + 숫자[i]
- 합계가 짝수이면
- freq[(total / 2)의 몫]이 0이 아니면
- 참 반환
- freq[(total / 2)의 몫]이 0이 아니면
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
from collections import defaultdict def solve(nums): freq = defaultdict(int) total = 0 for i in range(len(nums)): freq[nums[i]] += 1 total += nums[i] if total % 2 == 0: if freq[total // 2]: return True return False nums = [3,2,10,4,1] print(solve(nums))
입력
[3,2,10,4,1]
출력
True