알고리즘 공부/백준

(Python)백준 코딩테스트 연습 - 행렬 곱셈

HRuler 2023. 1. 3. 17:23

1. 문제

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

 

2740번: 행렬 곱셈

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

www.acmicpc.net

2. 풀이

n, m = map(int, input().split())
a_list = []
for i in range(n):
    a_list.append(list(map(int, input().split())))
    
m, k = map(int, input().split())
b_list = [[] for i in range(k)]
for i in range(m):
    b = list(map(int, input().split()))
    for j in range(k):
        b_list[j].append(b[j])
# print('a_list :', a_list)
# print('b_list :', b_list)
result_list = [[] for i in range(n)]
for i, v in enumerate(a_list):
#     print(i, v)
    for j in b_list:
        p_sum = 0
        for p in range(len(v)):
            p_sum += v[p] * j[p]
        result_list[i].append(p_sum)
for result in result_list:
    for result_p in result:
        print(result_p, end=' ')
    print()