Algorithm/BaekJoon

(파이썬) 백준 2740번 "행렬 곱셈"

innit 2022. 5. 23. 19:43


# 답

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

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

ans = [[0] * K for _ in range(N)]

for n in range(N):
    for k in range(K):
        tot = 0
        for m in range(M):
            tot += matrix1[n][m] * matrix2[m][k]
        ans[n][k] = tot

for i in range(len(ans)):
    print(*ans[i])

 

 

 

 

 


# 행렬 곱셈

 

 

1. (곱셈 기호 앞에 있는 행렬의 열의 개수) == (곱셈 기호 뒤에 있는 행렬의 행의 개수) 일 때만 곱셈 가능

2. 곱셈 기호 앞에 있는 행렬의 i행과, 곱셈 기호 뒤에 있는 행렬의 j열의 성분을 차례대로 곱하여 더한 값이 정답 행렬의 (i, j) 성분

 

 

 

 

728x90
반응형