728x90
[프로그래머스] 행렬의 덧셈 | javascript level 1
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]] |
작성한 코드
function solution(arr1, arr2) {
let answer = [];
for(let i=0; i<arr1.length; i++) {
let tmp = [];
for(let j=0; j<arr1[i].length; j++) {
tmp.push(arr1[i][j]+arr2[i][j]);
}
answer.push(tmp)
}
return answer;
}
이중for문을 돌려서 각 0인덱스0번째요소, 0인덱스1번째요소, 1인덱스0번째요소..등등 더해줍니다.
첫번째 for문에서 빈 배열을 만들어서 두번째 for문때 그 배열에 push해줍니다. 더해진 배열은 answer 배열에 push해주는 것을 반복하면 정답이 반환됩니다.
다른 분이 작성하신 좋은 코드
function sumMatrix(A,B){
return A.map((a,i) => a.map((b, j) => b + B[i][j]));
}
function solution(arr1, arr2) {
var answer = [[]];
for (var i=0; i<arr1.length; i++){
answer[i] =[];
for(var j=0; j<arr1[i].length; j++){
answer[i].push(arr1[i][j] + arr2[i][j]);
}
}
return answer;
}
map을 이용해서 한줄로 끝낼수도 있고 두번째 방법은 제가 푼 방법에서 더 간결하게 푸신 것 같아 추가했습니다.
728x90
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 | javascript (0) | 2021.08.01 |
---|---|
[프로그래머스] 최대공약수와 최소공배수 | javascript (0) | 2021.07.31 |
[프로그래머스] 콜라츠 추측 | javascript (0) | 2021.07.29 |
[프로그래머스] 시저 암호 | javascript (0) | 2021.07.28 |
[프로그래머스] 정수 제곱근 판별 | javascript (0) | 2021.07.27 |