프로그래머스[Level 2] 행렬의 곱셉

bkboy·2022년 6월 24일
0

문제

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

제한 사항

  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.

입출력 예

풀이

function solution(arr1, arr2) {
    let answer = [];
    
    // 행렬의 곱셉은 앞 행렬의 행과 뒤 행렬의 열을 곱한다.
    // 행
    for(let i = 0; i< arr1.length; i++){
        let cur = arr1[i];
        answer.push([])
        // 두번째 행렬의 열
        for(let j = 0 ;j<arr2[0].length; j++){
            let sum = 0;
            // 두번째 행렬의 행, 곱하는 횟수가 행이 된다.
            for(let k = 0; k<arr2.length;k++){
                // 누적 값을 저장
                sum += cur[k] * arr2[k][j];
            }
            answer[i].push(sum);
        }
    }
    return answer;
}

행렬의 곱셉

profile
음악하는 개발자

0개의 댓글