행렬의 덧셈

 

행렬이란게 처음 나왔다.

아마 JS의 새로운 배열방식 이라기 보다는

그냥 평범한 배열중 하나라고 생각하는게 좋을 듯 하다.

 

arr1 =  [[1,2],[2,3]]   일때

arr1[0] =  [1,2]     ///   arr1[1] = [2,3]   라는 것 !

 

더더 중요한것은 

arr1[0][0]  =  1    이라는것으로

배열안의 배열을 지정할 수 있게 된다는 것

 

그럼 문제를 다시 풀어보자.

일단 arr1[0][0] + arr2[0][0] = return[0][0]  을 시작으로

 arr1[0][1] + arr2[0][1] = return[0][1]  ...  다음

 arr1[1][0] + arr2[1][0] = return[1][0]   

이런식의 반복과 적절히 [ ] , [ ] 나눠주는 작업이 필요하겠다

 

저런류의 반복은 이미 이중 for문 으로 해결한 바 있다.

 

당장 문제는 행렬을 더해주는 방법보다는 

더한값을 행렬처럼 만드는 방법을 알아내야 한다.

 

제일 간단한 방법은 

[0][0] 결과 값, [0][1] 결과값 을 배열에 push 해서 행렬을 만드는 법

 

function solution(arr1, arr2) {
    var answer = [];
    for(let i =0; i < arr1.length ; i++) {
        var ans = [];
        for( let j = 0; j < arr1[i].length ; j++) {
            
            ans.push(arr1[i][j] + arr2[i][j]) 
        }
        answer.push(ans);
    }
    return answer;
}

 

완성된 코드는 이러하다

 

결과적으로 

j 반복문으로 

arr1[i][j] + arr2[i][j] 의 값 ans 가  answer [ ]  에 push 되면서   [[ ans[0], ans[1]]]  를 만들고

i 반복문으로 돌아와서

var = ans 로 ans 값이 초기화되고 

다시 j 로 넘어가서 arr[1] 로 넘어가게 된다 .

 

그렇게 해서

[ [arr[0]] , [arr[1]] ]   과 같이 행렬로 만들 수 있게 된다.

 

글로 설명하려니까 오히려 복잡해진 느낌인데, 

 

행렬은 배열 안에 배열이 있는 형태이고, 

배열 arr [a][b].... 으로 배열내의 배열의 index 를 지정할 수 있다.

 

이런 배열을

2차원 배열 ( 다차원 배열)

이라고 하며, 이러한 2차원 배열의 데이터를 활용하기 위해선 

거의 필수적으로 for 문 또한 2차원이 되어야 할 것이다.

 

 

 

 

 

'사전캠프' 카테고리의 다른 글

28일차 - SQL 문제 풀이  (0) 2024.07.30
26일차 - 알고리즘 풀이  (0) 2024.07.25
25일차 - 알고리즘 풀이  (3) 2024.07.24
24일차 - 알고리즘 풀이  (1) 2024.07.23
23일차 - 알고리즘 풀이  (3) 2024.07.22

+ Recent posts