본문 바로가기
알고리즘

항해 99 10일차 TIL( 행렬의 곰셈 / 프로그래머스

by 순원이 2024. 4. 5.

문제         

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1 번째 시도   

보기엔 굉장히 쉬어보이지만 구현하는데 애 많이먹었다

  • 행렬부터 다시 짚어보겠다
    • arr1배열의 행과 arr2의 열을 곱하는 거다 
    • 그러므로 arr1행의 길이와 arr2의 열의 길이는 같아야 한다 
  • i = 현재 행을 가르키는 인덱스
  • j = 현재 열을 가르키는 인덱스
  • k = 내적 계산에서 사용되는 인덱스로, 행렬 A의 열과 행렬 B의 행을 동시에 순회합니다.

 

 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;
      }
  }