행렬의 곱셈

y0ung·2020년 11월 27일
0

⛓ Algorithm

목록 보기
6/12
post-thumbnail

문제 설명

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

제한 조건

  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.

입출력 예

arr1arr2return
[[1, 4], [3, 2], [4, 1]][[3, 3], [3, 3]][[15, 15], [15, 15], [15, 15]]
[[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]]

👤 나의 풀이

function solution(arr1, arr2) {
  let answer = []

  for(let i = 0; i < arr1.length; i++){
    answer.push([]) // 2차원배열 
    for(let j = 0; j < arr1[0].length; j++){
      answer[i].push(0) 
      for(let k=0; k< arr2[0].length; k++){
        answer[i][j] += arr1[i][k] * arr2[k][j];
      }
    }
  }
  return answer
}
 console.log(solution([[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]]

마치며

문제의 규칙을 찾아내는데 시간이 걸렸었다. 아직도 이차원 배열 활용 하는데 어려움이 있다....

profile
어제보다는 오늘 더 나은

0개의 댓글