내가 작성한 답
function solution(arr1, arr2) {
const answer = Array.from({ length : arr1.length }, () => 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 < arr1[0].length; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
다른 답
function productMatrix(A, B) {
return A.map(function(row) {
return row.map(function(_, i) {
return row.reduce(function(sum, cell, j) {
return sum + cell * B[j][i];
}, 0);
});
});
}
해석
- 세 개의 중첩된 반복문을 사용하여 행렬의 곱셈 수행.
- 결과 행렬 answer를 초기화하고 각 요소를 계산.
- map 함수와 중첩된 reduce 함수를 사용하여 행렬의 곱셈 수행.
- 각 행의 요소를 순회하면서, 해당 요소와 다른 행의 열을 곱한 값을 누적하여 결과 생성.