백준 2740번: 행렬 곱셈 [Python]

실버 V 실버 V

문제

행렬 곱셈

풀이

두 행렬 $A$와 $B$의 곱 $C$는 다음과 같이 정의됩니다.

\[C_{ij} = A[i] \cdot B[j]\]

$A$의 $i$번째 행과 $B$의 $j$번째 열의 내적입니다.

정의를 그대로 잘 구현하면 됩니다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def main():
    N, M = map(int, input().split())
    A = [list(map(int, input().split())) for _ in range(N)]

    M, K = map(int, input().split())
    B = [list(map(int, input().split())) for _ in range(M)]

    res = [[0] * K for _ in range(N)]
    for i in range(N):
        for j in range(K):
            for k in range(M):
                res[i][j] += A[i][k] * B[k][j]

    for row in res:
        print(*row)


main()

백준 2740번: 행렬 곱셈 [Python]