2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수 작성
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
answer
의 크기를 구하기 위해 연습장에 가볍게 적으며 풀었음.answer
행렬은 한 행에 arr2
의 행벡터 크기만큼의 원소를 가지며, arr1
의 열벡터 크기만큼의 행을 가지므로 for
Loop을 사용하여 0
으로 채워진 초기 행렬 선언answer
의 각 원소에 접근하기 위하여 첫 for
는 arr1
의 크기만큼, 두 번째 for
는 arr2[0]
의 크기만큼 설정하여 2중 for
Loop 구성arr1
과 arr2
에 공통적으로 사용할 인덱스k
를 부여하기 위하여 행렬곱의 첫 요소인 arr1
의 첫 원소 크기만큼 for
Loop 생성answer
의 각 요소인 [i][j]
에 접근하며 arr1
의 i
번째 행의 스칼라 [k]
와 arr2
의 k
번째 행의 스칼라 [j]
를 곱하는 연산을 반복