[프로그래머스] [LV2] 행렬의 곱셈

업데이트:

📚 행렬의 곱셈

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

난이도 ⭐️⭐️

📖 문제

이미지

📝 내 풀이

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 k = 0 ; k < arr1[0].length ; ++k) {
                      answer[i][j] += arr1[i][k] * arr2[k][j];
                  }
              }
          }

          return answer;
      }
  }

👊🏻 내 전략

머리로만 생각해서 코딩을 할려하니 잘 정리가 되지 않았다.
행렬 연산에 대해서 식을 써보고 그에 맞게 끔 포멧 정리를 해보았다.
2x2행렬이 있다고 한다면
answer[1][1] = answer[0][0] x answer[0][0] + answer[0][1] x answer[1][0]
이런식으로 된다. 정리를 해보면,
answer[i][j] += arr1[i][k] * arr2[k][j]; 이 도출되고 그에 맞게 끔 for문을 작성하였다.

끝-!

댓글남기기