더북(TheBook)

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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.