[링크]
https://programmers.co.kr/learn/courses/30/lessons/12950
코딩테스트 연습 - 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요
programmers.co.kr
[문제설명 및 입출력 예]
[내가 제출한 코드 및 풀이]
📝풀이과정
더보기
- 2차원 행렬 arr1, arr2 이니까 내부 값 연산을 위해 for문을 2번 돌려야 한다고 판단
- 1번째 for문은 i, 2번째 for문은 j 로 변수 선언 후 arr1.length만큼 반복문 돌림
- 2번째 for문에서 arr[i][j] 값들을 연산해서 1차원 배열의 temp에 넣어줌
- 현재 temp는 1차원 배열 형태이므로, anwer라는 1차원 배열에 한 번 더 넣어서 2차원으로 만들어줌
[다른 사람의 코드]
1
2
3
|
function solution(arr1, arr2) {
return arr1.map((arr, i) => arr.map((n, j) => n + arr2[i][j]));
}
|
cs |
- map 을 사용한 풀이
1
2
3
4
5
6
7
8
9
10
|
function sumMatrix(A,B){
var answer = Array();
for(var i = 0; i < A.length; i++){
answer[i] = [];
for(var j = 0; j < A[i].length; j++){
answer[i][j] = A[i][j] + B[i][j];
}
}
return answer;
}
|
cs |
- 내부 for문에 연산 값들을 담고, 값이 담긴 1차원 배열을 answer에 다시 담는식으로 작성된 것 같음
1
2
3
4
5
6
7
8
9
10
|
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;
}
|
cs |
- 첫번째 for문에 answer[i]로 만들고 두번째 for문을 돌면서 1차원 배열들을 answer[i]에 담는다.
👉내가 원했던 방식! 연산된 값을 출력 결과와 똑같이 담는 과정에서 버벅여서 다른 방법을 사용했다. answer[i] = []; 여기까지 생각을 못했다😂
'Algorithm' 카테고리의 다른 글
[프로그래머스] 부족한 금액 계산하기 - JavaScript 📝 (0) | 2021.11.09 |
---|---|
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - JavaScript 📝 (0) | 2021.11.09 |
[프로그래머스] 핸드폰 번호 가리기 - JavaScript 📝 (0) | 2021.11.09 |
[프로그래머스] 없는 숫자 더하기 - JavaScript 📝 (0) | 2021.11.08 |
[프로그래머스] 문자열을 정수로 바꾸기 - JavaScript 📝 (0) | 2021.11.08 |