본문 바로가기
알고리즘 풀이/백준

[백준 2740] 행렬 곱셈 (python)

by char_lie 2023. 4. 9.
반응형

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

 

2740번: 행렬 곱셈

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

www.acmicpc.net

행렬 곱셈 문제

행렬의 곱셈을 구해서 출력해보는 문제

행렬 연산 원리만 알면 쉽게 풀 수 있다.

📌 문제 접근 포인트

1. 행렬의 곱셈 연산에 대해 생각해보자.
2. 행렬은 A의 i 행 * B i 열 곱을 다 더한 형태로 되어있다.
3. 곱해서 출력하게 만들어주면 해결!

⚙ 내가 푼 정답 코드

def multi(a,b):
    X = [[0]*K for _ in range(N)]
    for i in range(N): # 행렬
        for j in range(K):
            for k in range(M):
                X[i][j] += a[i][k]*b[k][j] #곱셈 연산
    return X

import sys
N, M = map(int, sys.stdin.readline().split())
A = [list(map(int,sys.stdin.readline().split())) for _ in range(N)]
M, K = map(int, sys.stdin.readline().split())
B = [list(map(int,sys.stdin.readline().split())) for _ in range(M)]
for i in multi(A,B):
    print(*i)
반응형

댓글