[Algorithm] 행렬의 곱셈

fromzoo·2020년 11월 29일
0

algorithm

목록 보기
8/10
post-thumbnail

👩‍🏫 문제설명

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

제한 조건

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

입출력 예

arr1arr2return
[[1, 4], [3, 2], [4, 1]][[3, 3], [3, 3]][[15, 15], [15, 15], [15, 15]]
[[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]]

✍ 문제해설

function solution(arr1, arr2) {
    var answer = [];

    for(let i = 0; i < arr1.length; i++) {
        answer.push([])
        for(let j = 0; j < arr2[0].length; j++) {
            answer[i].push(0);
            for(let k = 0; k < arr2.length; k++) {
                answer[i][j] += arr1[i][k] * arr2[k][j]
            }
        }
    }

    return answer
}

2차원 배열을 다루는게 쉽지 않았다 반복문도 복잡해지니 점점 헷갈리고 결국 다른 사람 풀이를 참고해서 풀었다. 혼자 다시 풀어봐야할 것 같다.

profile
프론트엔드 주니어 개발자 🚀

0개의 댓글