[프로그래머스/Java] Lv.2 행렬의 곱셈

이은정·2024년 11월 24일

프로그래머스/Java

목록 보기
57/74

문제

풀이

행렬 곱은 다음과 같이 계산해야 한다.

행렬곱을 통해 나온 사이즈는 다음과 같다.
row는 첫번째 행렬의 row의 size와 동일하다.
column은 두번째 행렬의 column의 size와 동일하다.

행렬곱은 arr1[row][...]와 arr2[...][col]의 모든 곱셈 결과를 합산하여 answer[row][col]에 저장하는 방식으로 구한다.

코드

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

결과

느낀점

행렬곱을 어떤 방식으로 구하는 것인지 알면 매우 쉬운 문제 같다.

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글