행렬의 곱셈

hyuri·2023년 11월 29일
0

코딩테스트 연습

목록 보기
69/70

내가 작성한 답

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);
        });
    });
}

해석

  • 내가 작성한 답
  1. 세 개의 중첩된 반복문을 사용하여 행렬의 곱셈 수행.
  2. 결과 행렬 answer를 초기화하고 각 요소를 계산.
  • 다른 답
  1. map 함수와 중첩된 reduce 함수를 사용하여 행렬의 곱셈 수행.
  2. 각 행의 요소를 순회하면서, 해당 요소와 다른 행의 열을 곱한 값을 누적하여 결과 생성.
profile
개발자가 되고 싶은 지망생

0개의 댓글