✔문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
✔입출력 예
arr1 arr2 return
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
✔나의 풀이
function solution(arr1, arr2) {
const array=[];
arr1.map((item,index)=>{
let newarray=[]; // 빈배열을 만든다.
for(let i=0;i<item.length;i++){ //행렬의 내부 요소의 길이만큼 반복
newarray.push(arr1[index][i]+arr2[index][i]);
}array.push(newarray);
});
return array;
}
이 문제를 보자마자 배열 요소들의 각각을 순환하면서 각각의 더해줘 새 배열에 넣어주는 방식으로 풀어야 겠다고 생각했다. 복잡해 보이지 않기 위해서 for문 대신 map함수를 사용했지만 map 함수 안에는 어쩔수 없지 for문을 사용해 순환을 했다.
✔다른 사람 풀이
function solution(A, B) {
return A.map((a, i) => a.map((b, j) => b + B[i][j]));
}
이렇게 간단하게 풀 수도 있구나 생각했다. map 함수안에 map함수를 넣는다는 생각을 하지 못했다. 풀이가 훨씬 간단하고 이해하기도 쉽다.
'알고리즘 > 자바스크립트-프로그래머스' 카테고리의 다른 글
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 같은 숫자는 싫어 (0) | 2023.01.03 |
---|---|
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 최대공약수와 최소공배수 (0) | 2023.01.02 |
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 부족한 금액 계산하기 (0) | 2023.01.02 |
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 문자열 다루기 기본 (0) | 2023.01.02 |
[프로그래머스 | Javascript] 코딩테스트 Lv1 - 약수의 개수와 덧셈 (0) | 2023.01.02 |