> 기초/코테 연습

TIL-2024.08.11-programmers-lv2-12949.행렬곱셈

Janku 2024. 8. 12. 19:50

 

 

 

 

URL

https://school.programmers.co.kr/learn/courses/30/lessons/12949

 

 

CODE

 

// URL > https://school.programmers.co.kr/learn/courses/30/lessons/12949

const solution = (arr1, arr2) => {
    const rows1 = arr1.length;
    const cols1 = arr1[0].length;
    const rows2 = arr2.length;
    const cols2 = arr2[0].length;

    // 결과 행렬의 크기
    const result = Array.from({ length: rows1 }, () => Array(cols2).fill(0));

    // 행렬 곱셈 수행
    for (let i = 0; i < rows1; i++) {
        for (let j = 0; j < cols2; j++) {
            for (let k = 0; k < cols1; k++) {
                result[i][j] += arr1[i][k] * arr2[k][j];
            }
        }
    }

    return result;
};

console.log("result:: ", solution([[1, 4], [3, 2], [4, 1]], [[3, 3], [3, 3]])); // [[15, 15], [15, 15], [15, 15]]
console.log("result:: ", solution([[2, 3, 2], [4, 2, 4], [3, 1, 4]], [[5, 4, 3], [2, 4, 1], [3, 1, 1]])); // [[22, 22, 11], [36, 28, 18], [29, 20, 14]]