# N*N행렬의 제곱을 구하는 함수
# matrix 에는 [[1,0],[0,1]] 과 같이 행렬이 N*N의 format으로 들어오면 된다.
# return 또한 input format 과 같이 return된다
def square(matrix):
N = len(matrix)
return_matrix = [[] for _ in range(N)]
tmp = list(zip(*matrix))
for i in range(N):
for j in range(N):
return_matrix[i].append(sum(map(lambda x : x[0] * x[1],zip(matrix[i], tmp[j]))))
return return_matrix
'''
# testcase
print(square([[1,2,3],[1,2,3],[1,2,3]]))
'''
반응형
'코딩테스트 > Python template' 카테고리의 다른 글
행렬의 곱셈 (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 |