위 조건처럼 곱셈 연산이 가능한 두 행렬이 있다고 하자.
3 x 2
[[1, 4],
[3, 2],
[4, 1]]
2 x 2
[[3, 3],
[3, 3]]
이 두 행렬의 곱셈이 완료된 결과물은 아래와 같을 것이다.
3 x 2
[[0, 0],
[0, 0],
[0, 0]
해당 문제를 풀기 위해 선형 대 수학의 지식이 필요하다.
곱셈의 과정은 다음과 같다.
먼저 1행 1열의 값을 구하려면,
function solution(arr1, arr2) {
let result = Array(arr1.length).fill(0).map(row => Array(arr2[0].length).fill(0))
for(let i = 0; i < arr1.length; i++) { // 행의 길이만큼 반복
for(let j = 0; j < arr2[0].length; j++) { // 열의 길이만큼 반복
let sum = 0
for(let k = 0; k < arr1[i].length; k++) {
sum = sum + (arr1[i][k] * arr2[k][j])
}
result[i][j] = sum
}
}
return result
}
따라서 코드로 구현하면 위와 같다. 과정을 간략하게 살펴보면