본문 바로가기
코딩테스트/Javascript

[Level1] 행렬의 덧셈 답안 및 풀이

by SRin23 2021. 7. 26.

◇ 문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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) {
    var answer = [[]];
    return answer;
}

 


◇ 답안

function solution(arr1, arr2) {
    var answer = new Array(arr1.length);
    for(let i = 0; i<arr1.length; i++){
        answer[i] = new Array(arr1[i].length);
        for(let j = 0; j<arr1[0].length; j++){
            answer[i][j] = (arr1[i][j] + arr2[i][j]);
        }
    }
    return answer;
}

 

◇ 답안 힌트

    ▶  2중 for문을 사용하여 2차원 배열에 접근하세요

    ▶  같은 행과 같은 열에 있는 값을 각각 더하세요

 

◇ 답안 풀이

function solution(arr1, arr2) {
    //행의 길이를 가지는 1차원 배열 생성
    var answer = new Array(arr1.length);
    
    //행에접근
    for(let i = 0; i<arr1.length; i++){
        //행마다 열길이에 맞는 1차원 배열 각각 생성(2차원 배열생성)
        answer[i] = new Array(arr1[i].length);
        
        //행과 열에 접근
        for(let j = 0; j<arr1[0].length; j++){
            //같은 행과 열을 가지는 arr1과 arr2를 더해 answer의 같은 행/열에 저장
            answer[i][j] = (arr1[i][j] + arr2[i][j]);
        }
    }
    return answer;
}

 

◇ 실행결과

행렬의 덧셈 실행결과

 

◇ 출처

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

댓글