Oops, All Code!/🤯 Oops, My Algorithm!
♡̈ 18. 프로그래머스:: 행렬의 덧셈
밍동망동
2024. 7. 13. 21:10
1. 각 행과 각 열의 원소를 순회해 더한 값을 새로운 행렬에 저장함
2. 최종 결과 행렬을 반환함
그 뭐랄까 행렬만 나오면 일단 걱정되는데
그래도 문제 조건에 더하는 방법 같은게 나와있어서 그대로 풀어봤다.
function solution(arr1, arr2) {
let result = [];
for (let i = 0; i < arr1.length; i++) {
let row = [];
for (let j = 0; j < arr1[i].length; j++) {
row.push(arr1[i][j] + arr2[i][j]);
}
result.push(row);
}
return result;
}
+ 덧
배열의 경우 const 선언이 가능하는 댓글을 봤다.
배열을 const 로 선언했을 때, 왜 push와 pop이 가능할까 (state 배열)
갑자기 궁금해짐 조만간 알아보도록 하자 대체 언제 옴? 알아보러 왔다. 우선 const 가 무엇인지에 대해 알아보자 const 선언은 블록 범위의 상수를 선언합니다. 상수의 값은 재할당할 수 없으며 다
morohaji.tistory.com
따라서 안정화를 위해
let result = []
해당 부분을 const 선언해주면 좋을 것 같다.
const result = []
나는 이런 문제 보면 역시 메서드 같은게 안 떠오르는데
다른 사람들은 바로 배열이니까 map도 쓰고 하는거 보면 참 대단하다.
난 아직 익숙한 것에서 벗어나는 사고력이 부족한 것 같다 т ̫ т
다른 사람의 코드
function sumMatrix(A,B){
return A.map((arr1, idx1) => arr1.map((val, idx2) => val+B[idx1][idx2]));
}
특히 내부 map 메서드 부분에 대한 이해가 어려웠다.
arr1.map((val, idx2) => val + B[idx1][idx2])
arr1의 각 원소를 순회하고, idx2는 현재 열이다.
각 원소(val)의 동일 위치인 B 행렬의 원소를 더한다.
val는 A 행렬의 [idx1][idx2]를 나타낸다.