알고리즘/백준(BOJ)

[백준/BOJ/알고리즘/파이썬(python)]#2740_행렬 곱셈

https://www.acmicpc.net/problem/2740

 

2740번: 행렬 곱셈

첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개

www.acmicpc.net

행렬의 곱셈을 계산하는 문제로

반복문과 배열을 행렬곱연산에 맞게 구조를 잘 짜면 된다.

 

파이썬 코드

#2740_행렬곱셈
import sys
input = sys.stdin.readline

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

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

tmp_el=0
tmp=[]
res = []
for i in range(N):
    for j in range(K):
        for a in range(M):
            tmp_el += A_element[i][a]*B_element[a][j]
        tmp.append(tmp_el)
        tmp_el = 0
    res.append(tmp)
    tmp = []

for i in res:
    for j in i:
        print(j, end=' ')
    print()