[백준 2740 파이썬] - 행렬 곱셈

zsunny·2022년 8월 5일
1

📌 문제

💯 정답

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(n)]
m, k = map(int, input().split())
b = [list(map(int, input().split())) for _ in range(m)]

ans = [[0]*k for _ in range(n)]     # 최종 행렬 : a의 행 X b의 열

# 행렬의 곱 연산 적용
for r in range(n):
    for c in range(k):
        tmp = 0
        for i in range(m):
            tmp += a[r][i] * b[i][c]
        ans[r][c] = tmp

for x in ans:
    print(*x)

📝 설명

• 최종적으로 출력될 연산된 행렬을 0으로 초기화 해 만들어 준다.
  이때, 행과 열은 a의 행 b의 열이 된다.
• 이후 행렬의 곱 연산을 수행하면되는데,
  만약 1행2열의 값을 구하고 싶다면 a의 1행 i열 값과 b의 i행 2열의 각각의 곱의 합을 구하면 된다.
• ans = [[],[],[],•••]가 될 것이고 이를 *를 통해 unpackging해 출력한다.
profile
매일 성장하는 예비 웹 개발자 🌱

0개의 댓글