반응형
문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한사항
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 | arr2 | return |
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
내가 작성한 답안
이중 for문 사용하기
function solution(arr1, arr2) {
let answer = [];
for(let i = 0; i < arr1.length; i++) {
let newArr = [];
for(let j = 0; j < arr1[0].length; j++) {
newArr.push(arr1[i][j] + arr2[i][j]);
}
answer.push(newArr);
}
return answer;
}
맨 처음 작성했던 코드이다. 이중 for문을 돌면서 arr1[i][j] + arr[i][j]를 새로운 값을 담을 빈배열 변수에 push하여 return한다.
이중 map 사용하기
function solution(arr1, arr2) {
return arr1.map((array, index) => array.map((e, idx) => e + arr2[index][idx]));
}
이중 for문이 아니라 다른 방법으로 풀 수는 없을까? 생각했고 결론은 현재 순회중인 요소의 인덱스값까지 보여주면서, 결과값을 배열로 return하는 map을 사용하는 것이었다.
❓ 이중 for문과 이중 map 중에서 어느 것이 더 나을까?
[참고 자료]
https://school.programmers.co.kr/learn/courses/30/lessons/12950
반응형
'Front-End > Algorithm' 카테고리의 다른 글
[프로그래머스 / JavaScript] Lv.1 신규 아이디 추천 (ft. 테스트 케이스) (0) | 2023.04.12 |
---|---|
[프로그래머스 / JavaScript] Lv.1 로또의 최고 순위와 최저 순위 (0) | 2023.04.11 |
[프로그래머스 / JavaScript] Lv.1 핸드폰 번호 가리기 (0) | 2023.04.08 |
[프로그래머스 / JavaScript] Lv.0 합성수 찾기 (0) | 2023.03.18 |
[프로그래머스 / JavaScript] Lv.1 두 개 뽑아서 더하기 (0) | 2023.03.16 |