
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr2[0].length];
for(int i = 0 ; i < arr1.length ; ++i){
for(int j = 0 ; j < arr2[0].length ; ++j){
for(int k = 0 ; k < arr1[0].length ; ++k) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
}
참조 : https://mathbang.net/562#gsc.tab=0
행렬의 곱셈은 arr1의 가로와 arr2의 세로를 곱한 값을 더해주면 된다
class ProductMatrix {
public int[][] productMatrix(int[][] A, int[][] B) {
int[][] answer = new int[A.length][B[0].length];
for(int i=0; i<answer.length; i++){
for(int j=0; j<answer[0].length; j++){
for(int k=0; k<A[0].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));
}
}