행렬의 덧셈
행렬이란게 처음 나왔다.
아마 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 |