whatisthis?
[프로그래머스] 행렬의 덧셈 - javaScript 본문
javascript
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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) {
return arr1.map((n, i) => n.map((m, j) => arr1[i][j] + arr2[i][j]));
}
map 함수의 중첩으로 각 행렬의 합을 구한다.
실행 결과
테스트 1 〉 통과 (0.13ms, 30.1MB)
테스트 2 〉 통과 (0.11ms, 30.2MB)
테스트 3 〉 통과 (0.21ms, 30MB)
테스트 4 〉 통과 (0.14ms, 30.1MB)
테스트 5 〉 통과 (0.10ms, 30.1MB)
테스트 6 〉 통과 (0.14ms, 30.2MB)
테스트 7 〉 통과 (0.07ms, 30MB)
테스트 8 〉 통과 (0.16ms, 30.1MB)
테스트 9 〉 통과 (1.26ms, 32.9MB)
테스트 10 〉 통과 (0.51ms, 33.3MB)
테스트 11 〉 통과 (0.50ms, 33.5MB)
테스트 12 〉 통과 (0.45ms, 33.9MB)
테스트 13 〉 통과 (0.32ms, 34MB)
테스트 14 〉 통과 (0.55ms, 34MB)
테스트 15 〉 통과 (0.45ms, 34MB)
테스트 16 〉 통과 (0.46ms, 33.7MB)
테스트 17 〉 통과 (6.74ms, 62.8MB)
다른 코드
function solution(arr1, arr2) {
let result = [];
for(let i=0; i<arr1.length; i++) {
let sum = [];
for(let j=0; j<arr1[i].length; j++) {
sum.push(arr1[i][j] + arr2[i][j]);
}
result.push(sum);
}
return result;
}
실행 결과
테스트 1 〉 통과 (0.09ms, 30.1MB)
테스트 2 〉 통과 (0.14ms, 30.1MB)
테스트 3 〉 통과 (0.27ms, 30.4MB)
테스트 4 〉 통과 (0.21ms, 30.1MB)
테스트 5 〉 통과 (0.09ms, 30MB)
테스트 6 〉 통과 (0.29ms, 30.3MB)
테스트 7 〉 통과 (0.09ms, 29.9MB)
테스트 8 〉 통과 (0.12ms, 30.3MB)
테스트 9 〉 통과 (0.83ms, 34MB)
테스트 10 〉 통과 (0.67ms, 33.8MB)
테스트 11 〉 통과 (0.48ms, 33.5MB)
테스트 12 〉 통과 (0.59ms, 33.7MB)
테스트 13 〉 통과 (0.37ms, 33.8MB)
테스트 14 〉 통과 (0.55ms, 33.8MB)
테스트 15 〉 통과 (0.55ms, 34MB)
테스트 16 〉 통과 (0.61ms, 34MB)
테스트 17 〉 통과 (8.93ms, 64.5MB)
arr1의 길이가 길어지면 오히려 속도가 느려지지만 이렇게도 코드를 작성할 수 있다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 평균 구하기 - JavaScript (0) | 2022.07.05 |
---|---|
[프로그래머스] 핸드폰 번호 가리기 - JavaScript (0) | 2022.07.05 |
[프로그래머스] 하샤드 수 - JavaScript (0) | 2022.07.05 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - JavaScript (0) | 2022.07.05 |
[프로그래머스] 직사각형 별찍기 - javaScript (0) | 2022.07.05 |