728x90
[백준알고리즘] 2740번: 행렬 곱셈 -Python
https://www.acmicpc.net/problem/2740
분할 정복까지는 아닌 것 같지만 소개에도 "행렬의 거듭제곱을 계산하기 전에 먼저 풀어야 할 문제"라고 나와있다. 행렬의 곱셈을 할 줄만 안다면 코드를 짜는 건 쉽기 때문에 코드만 올린다.
이 문제 역시 문제를 풀고 다른 사람들의 코드를 확인하니 정말 획기적으로 코드를 줄이신 분들이 많았다. 나는 결과 행렬을 새로 저장하고 출력하는 시간이 걸릴까 봐 바로 출력을 걸었는데도 속도가 더 느렸으니.. 대단하신 분들은 참 많다. 분발해야겠다.
import sys
N, M = map(int, sys.stdin.readline().split())
matrixA = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
M, K = map(int, sys.stdin.readline().split())
matrixB = [list(map(int, sys.stdin.readline().split())) for _ in range(M)]
for n in range(N):
for k in range(K):
tmp = 0
for m in range(M):
tmp += matrixA[n][m] * matrixB[m][k]
sys.stdout.write(str(tmp) + " ")
sys.stdout.write("\n")
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 10816번: 숫자 카드 2 -Python (0) | 2020.01.28 |
---|---|
[백준알고리즘] 1920번: 수 찾기 -Python (0) | 2020.01.28 |
[백준알고리즘] 14888번: 연산자 끼워넣기 -Python (2) | 2020.01.27 |
[백준알고리즘] 11401번: 이항 계수 3 -Python (0) | 2020.01.26 |
[백준알고리즘] 1629번: 곱셈 -Java (0) | 2019.12.31 |