
function solution(arr1, arr2) {
var answer = [];
// 곱셈한 결과물을 담을 배열. 0으로 초기화
arr1.forEach(row => answer.push(Array(arr2[0].length).fill(0)));
// 선행렬의 배열 갯수 => 행
for(let i = 0; i < arr1.length; i++) {
// 후행렬 배열 한개의 값 갯수 => 열
for(let j = 0; j < arr2[0].length; j++) {
// 이차원 행열의 곱셈공식
for(let k = 0; k < arr2.length; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
function solution(arr1, arr2) {
return arr1.map((row) => arr2[0].map((x,y) => row.reduce((a,b,c) => a + b * arr2[c][y], 0)))
}
헷갈리니까 풀어서 보자
function solution(arr1, arr2) {
// 선행렬의 행기준으로 배열을 가져옴
return arr1.map((row) =>
// 후행렬 첫번째 배열 하나의
arr2[0].map((x,y) =>
row.reduce((a,b,c) =>
a + b * arr2[c][y], 0)));
}