코딩 테스트/프로그래머스

프로그래머스 - 행렬의 곱셈 문제 (자바)

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

 

코딩테스트 연습 - 행렬의 곱셈

[[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]]

programmers.co.kr

행렬의 곱 계산 방식을 알면 간단하게 풀 수 있는 문제로

간단하게 설명하자면 선 행렬의 행과 후 행렬의 열을 제대로 매칭하면 된다.

이후로는 말로 설명하는 것보다 코드로 보는 것이 좋을 것 같다.

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int fLen = arr1.length;
        int sLen = arr2[0].length;
        int colLen = arr2.length;

        int[][] answer = new int[fLen][sLen];
        for (int i = 0; i < fLen; i++) {
            for (int j  = 0; j < sLen; j++) {
                for (int k = 0; k < colLen; k++) {
                    answer[i][j] += arr1[i][k] * arr2[k][j];
                }
            }
        }
        return answer;
    }
}