앞부분의 행렬의 열과 뒷부분 행렬의 행의 갯수가 같을 때, 앞부분 행렬의 행과 뒷부분의 행렬의 열을 각각 행, 열로 갖는 새로운 행렬을 갖는 것이다.
(A x M)
X (M x B)
는 A x B
의 행렬이 만들어진다.
A x B
의 각각의 요소는,
A x M
행렬의 행의 위치에 있는 각각 값들 과
M x M
행렬의 열의 위치에 있는 각각의 값들을 서로 곱하여 각각을 더한 값을 요소로 갖는다.
즉, New_matrix[row][col] += front_matirx[row][i] * back_matrix[i][col]
의 식이 나온다.
def solution(arr1, arr2):
col_max = len(arr2[0])
row_max = len(arr1)
result = [[0] * col_max for _ in range(row_max)]
for row in range(row_max):
for col in range(col_max):
for arr_col in range(len(arr1[0])):
result[row][col] += arr1[row][arr_col] * arr2[arr_col][col]
return result