[Programmers] 행렬의 곱셈 - JavaScript

Joosi_Cool·2023년 2월 10일
1

Programmers

목록 보기
18/98
post-thumbnail

문제설명



설계 과정

이전 고등학교 때, 배운 행렬과정을 코드에 녹아내려했다.
1. 우선 결과 행렬의 크기는 첫번째 행렬에 행, 두번째 행렬에 열이 그 크기가 된다.
2. 그리고 각 요소마다 곱 계산은 첫번째 행렬에 열이나 두번째 행렬에 행이 된다.
-> 만약 두개가 다르다면 곱이 안됨 -> 문제 오류
3. 계산 진행시, 첫번째 행렬에서 행에 해당하는 수와 두번째 행렬에서 열에 해당하는 수를 곱하여 이를 다 더해준다.
4. 이렇게 만들어준 하나의 행을 결과 행렬에 push 해준다.



풀이 코드

function solution(arr1, arr2) {
    var answer = [];
    var row = arr1.length;
    var col = arr2[0].length;
    var middle = arr2.length;
    for(var r = 0;r<row;r++){
         var plusArr = [];
        for(var c = 0 ; c<col;c++){
            var plusNum =0;
            // 결과 배열 값 각각 구하는 구간
            for(var i = 0;i<middle;i++){
                plusNum += (arr1[r][i] * arr2[i][c]);
            }
            plusArr.push(plusNum);
        }
        answer.push(plusArr);
    }
    return answer;
}


결과

이 문제는 쉬운 풀이보다는 이전에 배웠던 계산을 녹여서 문제를 풀었다. 행렬 곱에 대한 개념만 알고 있고 이를 설계한다면 쉬운 문제였다.

profile
집돌이 FE개발자의 노트

0개의 댓글