알고리즘 문제 풀기

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

Fo_rdang 2023. 6. 8. 10:10
반응형

행렬의 곱셈 

행렬의 곱셈 풀이하는 영상 !

https://youtu.be/S1Z2qwHFE6M

 

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


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


입출력 예

정답 풀이 코드 

 

function solution(arr1, arr2) {
   let y_arr1 = arr1.length; // arr1의 y축 길이(세로 축 길이)
   let x_arr2 = arr2[0].length; // arr2의 x축 길이(가로 축 길이)
   let y_arr2 = arr2.length; // arr2의 y축 길이(세로 축 길이)
    let answer = [] //전체 배열
   for(let i=0; i<y_arr1; i++){ //arr1의 y축 길이만큼 반복문을 돌린다. 전체 배열의 길이가 됨
       let result = [] //하나의 배열
       for(let j=0; j<x_arr2; j++){ //arr2의 x축 길이만큼 반복문을 돈다. 작은 배열의 길이가 됨
            let sum = 0; // 곱한 값을 더할 것임
           for(let k = 0; k<y_arr2; k++){ //arr1의 가로축 길이 혹은 arr2의 세로축 길이만큼!
               sum+= arr1[i][k] * arr2[k][j]
           }
           result.push(sum) // 작은배열에 다 더해진 값을 push
       }
       answer.push(result) // 큰 배열에 작은 배열을 psuh
   }
    return answer; //큰 배열 return 
}

 

반응형