문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
곱할 수 있는 배열만 주어집니다.
이해하기 쉽게 정사각행렬인 3 x 3 행렬을 이용해서 생각해보기로했다.
arr1 arr2 arr1 x arr2
[a,b,c] [1,2,3] [1a+4b+7c, 2a+5b+8c, 3a+6b+9c]
[d,e,f] [4,5,6] [1d+4e+7f, 2d+5e+8f, 3d+6e+9f]
[g,h,i] [7,8,9] [1g+4h+7i, 2g+5h+8i, 3g+6h+9i]
수학적 개념에 근거하여,
1.arr1의 행은
2.arr2의 열에 곱해져서 자리를 한다.
arr1의 하나의 행의 원소는 arr2의 열의 이동과 함께 해야한다.
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
result = []
for j in range(len(arr2[0])):
temp = 0
for k in range(len(arr2)):
temp += arr1[i][k]*arr2[k][j]
result.append(temp)
answer.append(result)
return answer
잘 보고 있습니다