2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
A를 nxk B를 kxm 행렬이라고 할 때 행렬 특성에 의하여 그 곱 행렬 C는 nxm 행렬로 도출된다.
이 때 행렬 연산 규칙에 의거하여 C 행렬 원소의 수식을 구할 수 있다.
def solution(arr1, arr2):
n,k,m = len(arr1),len(arr1[0]),len(arr2[0])
answer = [[0]*m for _ in range(n)]
for i in range(n):
for j in range(m):
for x in range(k):
answer[i][j] += arr1[i][x]*arr2[x][j]
return answer
fruit = ['apple','banana','cherry']
number = [1,2,3]
for pair in zip(fruit,number):
print(pair)
(1,'apple')
(2,'banana')
(3,'cherry)
로직은 나의 풀이와 같지만 이를 zip 함수를 이용하여 파이써닉 하게 풀어내었다.
def productMatrix(A, B):
return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A]