행렬의 곱셈

LJM·2023년 4월 6일
0

programmers

목록 보기
18/92

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

행렬의 곱이 어떻게 이루어지는지 알기 때문에 쉽게 풀거라 생각했는데 생각보다 시간이 걸렸다
왜냐면 너무 헷갈린다;;

A행B열 행렬과 C행D열 행렬 의 곱은 A행D열 행렬이 된다
2X3 행렬과 3X4 행렬의 곱은 2행4열이된다

그리고 B열과 C행의 숫자는 동일해야 곱할 수 있다(문제에서는 항상 곱할 수 있는 행렬이 주어진다고 했다)

왼쪽 행렬의 행과 오른쪽 행렬의 열을 곱하면 된다.

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2[0].length];
        
        int sum = 0;

        for(int i = 0; i < arr1.length; ++i)
        {
            
            for(int j = 0; j < arr2[0].length; ++j)
            {
                for(int k = 0; k < arr2.length; ++k)
                {
                    sum += arr1[i][k] * arr2[k][j];
                }
                
                answer[i][j] = sum;
                sum = 0;
            }
        }
               
        return answer;
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글