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

 

 

문제 분석

- 행렬의 곱셈은 첫 번째 행렬의 열과 두 번째 행렬의 행이 같아야 한다. 

- 삼중 for문을 통해 첫 번째 행렬의 열의 길이만큼 계산하고, 두번 째 행렬의 행의 길이만큼 처리한뒤, 두번째 행렬의 열의 길이만큼 처리하여 곱한 수들을 해당 행렬에 더한다.

- m은 첫 번째 행렬의 열과 두 번째 행렬의 행을 의미한다.

 

 

문제 풀이

1. 문제 분석 참고 -

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

 

 

https://github.com/SOEUN2/Algorithm

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

programmers 최솟값 만들기  (0) 2022.05.03
programmers 피보나치 수  (0) 2022.05.01
programmers JadenCase 문자열 만들기  (0) 2022.04.18
programmers N개의 최소공배수  (0) 2022.04.18
programmers 신고 결과 받기  (0) 2022.04.10