단의 개발 블로그

행렬의 곱셈 본문

Algorithm/JAVA

행렬의 곱셈

danso 2024. 9. 9. 20:22

💡 문제

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

💡 제한사항

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

입출력 예

 

 풀이

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int row = arr1.length;
        int col = arr2[0].length;
        int[][] answer = new int[row][col];
        for (int i=0; i<row; i++)
        {
            for (int j=0; j<col; j++)
            {
                for (int k=0; k<arr2.length; k++)
                {
                    answer[i][j] += arr1[i][k] * arr2[k][j];
                }
            }
        }
        return answer;
    }
}

수학이 어렵다. 행렬 곱셈은 행렬 A의 행과 행렬 B의 열을 곱한다. 3중 반복문을 사용해서 해당 인덱스에 접근해서 계산했다.

 

'Algorithm > JAVA' 카테고리의 다른 글

H-Index  (1) 2024.09.13
의상  (0) 2024.09.13
n^2 배열 자르기  (0) 2024.09.09
괄호 회전하기  (1) 2024.09.05
연속 부분 수열 합의 개수  (0) 2024.09.05