N x M 크기의 행렬을 입력받는다. 이 행렬에서 N개의 행을 N/2개로 분할하고(axis = 0 기준 N/2개로 분할), M개의 열을 M/2개로 분할해서 (axis = 1 기준 M/2개로 분할) N/2 * M/2 개의 부분 행렬로 분할할 수 있다. 이 부분 행렬들 중 원소들의 합이 가장 높은 부분합을 구하시오.
ex) (6 x 4) 10 12 15 17 19 14 2 3 3 17 2 5 14 17 7 2 6 17 15 15 2 10 5 010

6 17 | 15 15 2 10 | 5 0

각 부분행렬의 원소들의 합은 [55 37 51 16 35 35] 로, 가장 큰 부분합은 55
Input) 6 4 10 12 15 17 19 14 2 3 3 17 2 5 14 17 7 2 6 17 15 15 2 10 5 0 Output) 55
Input) 4 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Output) 82
import numpy as np
arr=[]
x=1
y=1
n=1
while(n%2!=0):
n = int(input('행렬의 개수 입력 '))
if(n%2!=0) : print('짝수가 아닙니다')
while(x%2!=0):
x = int(input('행의 개수'))
if(x%2!=0) : print('짝수가 아닙니다')
while(y%2!=0):
y = int(input('열의 개수'))
if(y%2!=0) : print('짝수가 아닙니다')
a = x/2
b = y/2
a = int(a)
b = int(b)
for i in range(n):
number = int(input())
arr.append(number)
#
narr = np.array(arr)
narr = np.reshape(narr,(x,y))
print(narr)
a1 = narr[:a,:b]
a2 = narr[a:,:b]
a3 = narr[:a,b:]
a4 = narr[a:,b:]
#
a1 = a1.sum(axis=1)
a2 = a2.sum(axis=1)
a3 = a3.sum(axis=1)
a4 = a4.sum(axis=1)
a1 = a1.sum(axis=0)
a2 = a2.sum(axis=0)
a3 = a3.sum(axis=0)
a4 = a4.sum(axis=0)
max = max(a1,a2,a3,a4)
print(a1)
print(a2)
print(a3)
print(a4)
print(max)