알고리즘 - 행렬의 곱셈

HoJeong Im·2021년 10월 1일
0

Break_Algo

목록 보기
32/46

문제

코드

function solution(arr1, arr2) {
    let answer = [];
    
    for(let i = 0; i < arr1.length ; i++){
        let arr = []; 
        for(let j = 0; j < arr2[0].length ; j++){
            arr.push(0);
        }  
        answer.push(arr);
    }
    
    for(let i = 0; i < arr1.length ; i++){
        for(let j = 0; j < arr2[0].length ; j++){
            
            let sum = 0; 
            for(let l = 0; l < arr1[0].length ; l++){
                sum += arr1[i][l] * arr2[l][j];
            }
            answer[i][j] = sum;
        }    
    }
    
    
    return answer;
}

회고

  • 행렬 곱의 수학적 정의를 알고 있으면 코드로 쉽게 해결 가능

  • (ij) (jk) 의 행렬의 형태를 만족한다면 => (ik)의 행렬을 결과로 반환하게 되고

  • j 만큼의 앞 행렬의 열 개수 만큼 * 뒷 행렬의 행 개수 만큼 각각 해당하는 원소의 곱의 결과를 합한 것이 해당 위치의 결과 원소값이 된다

profile
꾸준함이 제일 빠른 길이었다

0개의 댓글