ppotatoG


Back to all posts

행렬의 덧셈

Written by ppotatoG & Posted on November 17th, 2021

Programmers 행렬의 덧셈

처음 제출한 답

arr에 길이를 비교해 더했다

배열에 길이만큼 답도 달라져서...!

이렇게 하면 테스트부터 틀린당ㅋㅋ

function solution(arr1, arr2) {
let answer = [[], []];
for(let i = 0; i < arr1.length; i++){
if(arr1[0].length > 1){
for(let j = 0; j < arr1[i].length; j++){
answer[i].push(arr1[i][j] + arr2[i][j]);
}
}else {
answer[i].push(arr1[i] + arr2[i]);
}
}
return answer;
}

두번째 제출한 답

단순이 중복문이 문제라 생각했던 나는 꾸역꾸역 map으로 바꿈

역시나 안됨!

function solution(arr1, arr2) {
return [...arr1].map((cur, idx) => {
if(arr1[0].length === 1) return Number(arr1[idx]) + Number(arr2[idx]);
else return [...arr2].map((cur2, idx2) => {
return arr1[idx][idx2] + arr2[idx][idx2];
}, 0);
}, 0);
}

일주일정도 더 고민하다가 결국 구글링찬스로 풀었다

참고한 블로그

최근 보충한 답

받아올 배열 깊은복사

이중 반복문으로 값을 더해준 후 깊은복사 한 배열에 값 추가해주기

function solution12950(arr1, arr2) {
let arr = [...arr1];
// 받아올 함수와 같은 배열 만들어주기
for(let i = 0; i < arr1.length; i++){
for(let k = 0; k < arr1[i].length; k++) {
// 배열 내 배열을 돌며 더해준 값을 넣어주기
arr[i][k] = arr1[i][k] + arr2[i][k];
}
}
return arr;
}

Posted on November 17th, 2021