[JAVA/프로그래머스] 연습문제: 행렬의 곱셈

👀 문제

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

👊 도전

1. 설계

  1. 행렬의 곱셈을 코드로 구현한다.

2. 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;
/**
 *
 * @author HEESOO
 *
 */
class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2[0].length];
        for(int i=0;i<answer.length;i++){
            for(int j=0;j<answer[0].length;j++){
                for(int k=0;k<arr1[0].length;k++){
                    answer[i][j]+=arr1[i][k]*arr2[k][j];
                }
            }
        }
        return answer;
    }
}

3. 결과

실행결과 🤟 성공 🤟
막상 코드로 구현하려고 하니 어려웠다.

4. 설명

  1. 0을 제거한다
    • aXb인 행렬 A와 bXc인 행렬 B를 곱한 결과값 행렬 C의 사이즈는 a*c이다.
    • C(i,j)=A(i,0)B(0,j)+A(i,1)B(1,j)+…+A(i,b-1)B(b-1,j)과 같다.

👏 해결 완료!

참고