[JavaScript][Programmers] 행렬의 곱셈

조준형·2021년 8월 26일
0

Algorithm

목록 보기
90/142
post-thumbnail

🔎 행렬의 곱셈

❓ 문제링크

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

📄 제출 코드

function solution(arr1, arr2) {
  let arr1_x = arr1.length;
  let arr1_y = arr1[0].length;
  let arr2_y = arr2[0].length;

  // let answer = new Array(arr1_x).fill(new Array(arr2_y).fill(0));
  let answer = [];
  for (let i = 0; i < arr1_x; i++) {
    answer.push(new Array(arr2_y).fill(0));
  }
  
  console.log(answer);

  for (let i = 0; i < arr1_x; i++) {
    for (let j = 0; j < arr2_y; j++) {
      for (let k = 0; k < arr1_y; k++) {
        answer[i][j] = answer[i][j] + arr1[i][k] * arr2[k][j];
      }
    }
  }
  return answer;
}

let arr1 = [[1, 4], [3, 2], [4, 1]];
let arr2 = [[3, 3], [3, 3]];
console.log(solution(arr1, arr2));

두 행렬의 곱을 구하는 문제다.
행렬의 곱셈법은 위키백과에서 다시 찾아보았다... ;
좀 해맷던게 answer를 초기화할때 처음에 주석한 것처럼 했는데 저렇게 했을 때는 오답이 나왓지만 반복문을 통해 하니까 정답이 나왔다.
무슨 차이인지 잘 모르겠는데,,, 추후에 더 찾아봐야할거 같다.

📘 참고

https://ko.wikipedia.org/wiki/행렬_곱셈

profile
깃허브 : github.com/JuneHyung

0개의 댓글