PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

19. 분할 정복

두 행렬의 곱을 구하는 문제입니다. 행렬의 곱을 구하는 과정은 아래와 같습니다.

\[A=\begin{pmatrix}a_{11}&a_{12}&...&a_{1m}\\a_{21}&a_{22}&...&a_{2m}\\&&...&\\a_{n1}&a_{n2}&...&a_{nm}\end{pmatrix},B=\begin{pmatrix}b_{11}&b_{12}&...&b_{1k}\\b_{21}&b_{22}&...&b_{2k}\\&&...&\\b_{m1}&b_{m2}&...&b_{mk}\end{pmatrix}\]

라고 주어졌을 때, 행렬 A의 행벡터를 ai, 행렬 B의 열벡터를 Bi라고 하면, 두 행렬의 곱 A×B는 아래와 같이 쓸 수 있습니다.

\[A\times B=\begin{pmatrix}\mathbf{a}_1\\\mathbf{a}_2\\...\\\mathbf{a}_n\end{pmatrix}\times\begin{pmatrix}\mathbf{B}_1&\mathbf{B}_2&...\mathbf{B}_k\end{pmatrix}=\begin{pmatrix}\mathbf{a}_1\mathbf{B}_1&\mathbf{a}_1\mathbf{B}_2&...&\mathbf{a}_1\mathbf{B}_k\\\mathbf{a}_2\mathbf{B}_1&\mathbf{a}_2\mathbf{B}_2&...&\mathbf{a}_2\mathbf{B}_k\\&&...&\\\mathbf{a}_n\mathbf{B}_1&\mathbf{a}_n\mathbf{B}_2&...&\mathbf{a}_n\mathbf{B}_k\end{pmatrix}\\ \mathbf{a}_i\mathbf{B}_j=\sum_{k=1}^{m} a_{ik}b_{kj}\]

이것을 코드로 구현하여 답을 구하면 됩니다.

소스 코드

언어 코드 시간
Python 3 코드(Github) / 코드(백준) 2020-04-04 17:29:59