카테고리 없음

TIL - 2차 배열

8나지 2024. 7. 24. 23:58

         ____x                                                      5   4   3    |

        3   3                                                         2   4    1    |   

        3   3                                                         3   1    1    | y

1   4  a  b                                          2   3   2   a   b   c

3   2  c  d                                          4   2   4  d   e    f

4   1  e   f                                          3   1   4   g   h   i

<- arr1 ->                                        <- arr2 ->

 

arr1 기준으로

a 구하려면 a와 맞닿아있는 라인인 1,4 와 3,3을 계산 

(1 * 3) + (4 * 3) 

 

 

arr2 기준으로

a 구하려면 똑같이 맞닿아있는 라인인 5,2,3과 2,3,2를 계산

(2*5) + (3 * 2) + (2 * 3) => a는 22

 

---

function solution(arr1, arr2) {
  var answer = [];
  let yArr1 = arr1.length;
  let xArr2 = arr2[0].length;
  let xArr1 = arr1[0].length;
  //i = 배열1의 세로축 도는중
  for (let i = 0; i < yArr1; i++) {
    //큰 배열 안에 값 넣기
    let result = [];
    //j = 배열2의 가로축
    for (let j = 0; j < xArr2; j++) {
      let sum = 0;
      for (let k = 0; k < xArr1; k++) {
        //arr1 과 arr2 곱한 값 을 돌면서 더하기
        sum += arr1[i][k] * arr2[k][j];
        //k = arr1에서 가로축 길이
        //arr1 [i][k] arr2[k][j]
      }
      result.push(sum);
    }
    answer.push(result);
  }
  return answer;
}

 

 


https://www.youtube.com/watch?v=S1Z2qwHFE6M&t=932s