# 두 행렬 A,B를 곱해서 결과를 return한다
# input format은 [[1,2,3]],[[1],[2],[3]] 와 같이 곱할 두 행렬을 넣어주면 된다.
# 만약 곱셈이 불가능한 경우 assertion에 걸린다.
def multiple_matrix(A,B):
# find dimension (row -> m, column -> n)
m_A = len(A)
n_A = len(A[0])
m_B = len(B)
n_B = len(B[0])
assert(n_A == m_B)
# return matrix
return_matrix = [[] for _ in range(m_A)]
tmp = list(zip(*B))
for i in range(m_A):
for j in range(n_B):
return_matrix[i].append(sum(map(lambda x : x[0] * x[1], zip(A[i], tmp[j]))))
return return_matrix
# print(multiple_matrix([[1,2,3]],[[1],[2],[3]]))
반응형
'코딩테스트 > Python template' 카테고리의 다른 글
N*N 행렬의 제곱 (0) | 2022.07.08 |
---|---|
DP factorial (0) | 2022.06.29 |
인접 list graph 중복 제거 (0) | 2022.06.28 |
Bellman ford (벨만포드) (0) | 2022.06.25 |
거듭제곱 분할정복 (0) | 2022.06.24 |