공부 자료/알고리즘
(Python/파이썬) 백준 2740번 - 행렬 곱셈
뚜루뚜루세니
2021. 8. 5. 10:10
728x90
문제출처: https://www.acmicpc.net/problem/2740
2740번: 행렬 곱셈
첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개
www.acmicpc.net
1. 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
N,M = map(int, input().split())
A=[]
for i in range(N):
A.append(list(map(int,input().split())))
M,K = map(int, input().split())
B=[]
for i in range(M):
B.append(list(map(int,input().split())))
result = [[0 for _ in range(K)] for _ in range(N)]
for i in range(N):
for j in range(K):
for l in range(M):
result[i][j]+=A[i][l]*B[l][j]
for row in result:
for j in row:
print(j,end=" ")
print()
|
cs |
2. 해결과정
행렬의 곱셈은 N*M 행렬과 M*K를 곱했을 때 N*K 행렬을 만들게 된다.
A행렬과 B행렬에 각각 값을 입력 받고 result라는 리스트에 최종적으로 곱한 결과를 저장해주면된다.
3. 느낀점
처음에 result 범위를 설정하지 않고 단순하게 빈리스트로 선언했더니 틀렸다. 그거 외에는 괜춘
728x90