머리속에서는 쉽지만 막상 구현하면 헷갈려서 잘 틀리는 행렬곱…

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class ProductMatrix {
    public int[][] productMatrix(int[][] A, int[][] B) {
        if(A[0].length!=B.length)
            return null;
        int[][] answer = new int[A.length][B[0].length];
        for(int i=0;i<A.length;i++) {
            for(int j=0;j<B[0].length;j++) {
                for(int k=0;k<B.length;k++) {
                    answer[i][j]+=(A[i][k]*B[k][j]);
                }
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        ProductMatrix c = new ProductMatrix();
        int[][] a = { { 1, 2 }, { 2, 3 } };
        int[][] b = { { 3, 4 }, { 5, 6 } };
      // 아래는 테스트로 출력해 보기 위한 코드입니다.
      System.out.println("행렬의 곱셈 : " + c.productMatrix(a, b));
    }