행렬의 덧셈
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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
출처
'코딩테스트 > Programmers' 카테고리의 다른 글
[코딩테스트/Programmers] 19_최대공약수와 최소공배수 (Lv1.) (0) | 2022.01.11 |
---|---|
[코딩테스트/Programmers] 18_자릿수 더하기 (Lv1.) (0) | 2022.01.11 |
[코딩테스트/Programmers] 16_직사각형 별찍기 (Lv1.) (0) | 2022.01.10 |
[코딩테스트/Programmers] 15_같은 숫자는 싫어 (Lv1.) (0) | 2022.01.10 |
[코딩테스트/Programmers] 14_N개의 최소공배수 (Lv2.) (0) | 2022.01.04 |