문제
https://programmers.co.kr/learn/courses/30/lessons/12950
코딩테스트 연습 - 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요
programmers.co.kr
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
풀이
똑같은 크기의 행렬이 두 개가 있는데, 여기서 같은 행과 같은 열의 값을 더한다고 합니다. 배열 안에 배열이 있으니, 이중 for문으로 같은 자리의 값을 더하고 이를 배열에 담아 return 하는 것이 큰 흐름인 것 같습니다.
코드(테스트 불통과)
function solution(arr1, arr2) {
let answer = [];
let sum = [];
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr1[i].length; j++) {
sum.push(arr1[i][j] + arr2[i][j]);
}
answer.push(sum);
}
return answer;
}
값을 더하고 이 더한 값들로 배열을 만들어 return 시키기 위한 변수를 만들었습니다. arr1과 arr2의 같은 자리의 값을 더해 더한 값들을 담는 변수에 push() 함수를 사용해 담았고, 이 변수를 다시 빈 배열 answer에 담아 return을 하였습니다.
하지만 이는 오답이었는데요.
오답을 보니 코드가 틀린 건 아니고, 배열을 잘못 선언해 줬거나 변수 선언 위치가 잘못된 것 같았고, 다음과 같이 수정하였습니다.
코드(테스트 통과)
function solution(arr1, arr2) {
let answer = [];
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]);
}
answer.push(sum);
}
return answer;
}
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 제일 작은 수 제거(JavaScript) (0) | 2022.04.04 |
---|---|
[Programmers] 평균 구하기(JavaScript) (0) | 2022.03.27 |
[Programmers] 두 개 뽑아서 더하기(JavaScript) (0) | 2022.03.25 |
[Programmers] 문자열 다루기 기본(JavaScript) (0) | 2022.03.24 |
[Programmers] 예산(JavaScript) (0) | 2022.03.23 |
댓글