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

배열에 Python의 나머지 모든 요소의 합과 같은 요소가 있는지 확인하십시오.

<시간/>

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이 아니면
      • 참 반환
  • 거짓을 반환

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

예시 코드

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