행렬의 덧셈

 

 문제 설명

 

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]]

 

 Python 코드

 

def solution(arr1, arr2):
    for i in range(len(arr1)):
        for j in range(len(arr1[0])):
            arr1[i][j] += arr2[i][j]
    return arr1

이중 for문으로 행렬의 행과 열에 접근

먼저 변수 i는 리스트 arr1의 길이만큼 반복문에 적용

이때 len(arr1)은 행렬이 [[]]형식 일 때 바깥 대괄호에서 적용되는 길이

[[], [], ...]로 된 행렬은 리스트의 데이터로 리스트를 포함하고 있는 것으로

arr1의 길이라고 하면 안쪽 대괄호의 개수 즉 행의 개수라고 할 수 있음

두 번째 for문 변수 j는 len(arr1[0])만큼 반복되는데,

이는 [[], [], ...] 형식의 행렬에서 안쪽 대괄호 안의 데이터 개수이므로 열의 개수임

* 참고 링크 : https://sonar89.tistory.com/8

 

 C++ 코드

 

#include<iostream>
#include<vector>
using namespace std;
 
vector<vector<int> > sumMatrix(vector<vector<int> >A, vector<vector<int> >B)
{
    vector<vector<int> > answer;
 
    for(int i=0; i<A.size(); i++){  //2차원 배열의 y
 
        vector<int> v;              //하나의 y에 대한 x의 값들 (1차원 배열이라고 생각)
 
        for(int j=0; j<A[0].size(); j++){   //2차원 배열의 x
            v.push_back(A[i][j] + B[i][j]);
        }
 
        answer.push_back(v);
    }
    return answer;
}

* 참고 링크 : https://blockdmask.tistory.com/256

 출처

 

https://programmers.co.kr/learn/courses/30/lessons/12950

+ Recent posts