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

Python에서 절대 차이가 Ks가 되도록 배열을 두 개의 하위 배열로 나눌 수 있는지 확인하십시오.

<시간/>

정수를 포함하는 배열 "input_list"가 제공된다고 가정합니다. 우리에게 주어진 문제는 주어진 배열을 두 개의 반으로 나눌 수 있는지 확인하는 것입니다. 여기서 두 반의 합은 숫자 n과 같습니다. 번호 n은 미리 제공됩니다.

따라서 입력이 input_list=[9,2,5,6], n =0과 같으면 출력은 "가능"이 됩니다.

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

  • list_total :=input_list 값의 합
  • (list_total - n) mod 2가 1과 같으면
    • "불가능" 반환
  • val :=(list_total - n) / 2
  • temp_sum :=0;
  • 0에서 input_list의 크기 사이에 있는 i에 대해
    • temp_sum :=temp_sum + input_list[i]
    • temp_sum이 val과 같으면
      • "가능" 반환
  • "불가능" 반환

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

예시

def solve(input_list,n):
   list_total = sum(input_list)
   if (list_total - n) % 2 == 1:
      return "Not Possible"
   val = (list_total - n) / 2
   temp_sum = 0;
   for i in range (0,len(input_list)):
      temp_sum += input_list[i]
      if (temp_sum == val):
         return "Possible"
   return "Not Possible"
input_list= [9,2,5,6]
n = 0
print(solve(input_list, n))

입력

[9,2,5,6], 0

출력

Possible