728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/12950?language=javascript 

 

코딩테스트 연습 - 행렬의 덧셈

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요

programmers.co.kr

 

코드


  • 나의 풀이
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;
}

 

  • 다른 분의 풀이1
return arr1.map((element, i) => arr2[i].map((e, j) => arr1[i][j] + arr2[i][j]));

 

  • 다른 분의 풀이2
function solution(arr1, arr2) {
    let answer = [[]];
    
    for (let i=0; i<arr1.length; i++) {
        answer[i] = []; //tmp배열을 새로 만드는대신
        for (let j=0; j<arr1[i].length; j++) {
            answer[i].push(arr1[i][j]+arr2[i][j]);
        }
    }
    return answer;
}

 

후기


  • 자바스크립트로 2차원 배열을 생성하고 값을 넣는 방법을 터득하기 딱 좋은 문제였다
  • 나는 tmp까지 이용하며 좀 비효율적으로 풀이를 하였는데, 다른 분의 풀이 중에 나랑 비슷하지만 이차원 배열을 arr = [[]];로 선언하고 값을 넣을 때도 arr[i] = [];로 2차원 배열에 값을 넣는 방법이 있었다
  • map함수를 이용해서도 2차원 배열에 값을 넣는 방법도 알 수 있었다

+ Recent posts