파이썬 알고리즘 : 행렬의 곱셈

이차원 배열

2024년 1월 16일 알고리즘 문제풀이

문제

행렬의 곱셈

난이도

Lv. 2

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(arr1, arr2):
    a1 = len(arr1)
    b1 = len(arr1[0])
    a2 = len(arr2)
    b2 = len(arr2[0])
    answer = [[0 for _ in range(b2)] for _ in range(a1)]
    for i in range(a1):
        for j in range(b2):
            tmp = 0
            for x in range(b1):
                tmp += (arr1[i][x]*arr2[x][j])
            answer[i][j] = tmp
    return answer

마지막 tmp를 구할때 b1이나 a2나 아무거나 사용해도 상관없다. 행렬의 곱셈이 가능하다는 건 두 수가 같다는 의미이기 때문이다.