1. 피연산자(arr1)와 연산자(arr2)의 크기만큼 행렬을 생성합니다.
2. 먼저 피연산자(arr1)의 배열을 for 문으로 순차 조회합니다. - i
3. 연산자(arr2) 원소의 크기만큼 다시 for 문으로 순차 조회합니다. - j
4. arr1 원소의 크기만큼 또 다시 for 문으로 순차 조회합니다. - k
5. arr1[i][k] * arr2[k][j]를 수행한 값을 저장하여 답을 제출합니다.
핵심은 피연산자의 곱은 가로 방향, 연산자의 곱은 세로 방향으로 진행하면서 곱의 결과를 모두 더하는 것입니다.
이번 과정은 계속해서 동일한 내용이었던 1번을 제외하고 2번부터 5번을 모두 한 번에 수행하면 됩니다.
전체 코드
3장/행렬의_곱셈.py
def solution(arr1, arr2):
answer = [[0 for _ in range(len(arr2[0]))] for _ in range(len(arr1))]
for i in range(len(arr1)):
for j in range(len(arr2[0])):
for k in range(len(arr1[0])):
answer[i][j] += (arr1[i][k] * arr2[k][j])
return answer