[programmers][알고리즘][level1] 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.
예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 가 주어지면, 같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해주세요.)
#include<iostream>
#include<vector>
using namespace std;
vector<vector<int>> sumMatrix(vector<vector<int>> A, vector<vector<int>> B)
{
vector<vector<int>> answer;
auto a_it = A.begin();
auto b_it = B.begin();
while( a_it != A.end() )
{
vector<int> _answer;
auto _a_it = (*a_it).begin();
auto _b_it = (*b_it).begin();
while( _a_it != (*a_it).end() )
{
_answer.push_back((*_a_it) + (*_b_it));
++_a_it;
++_b_it;
}
answer.push_back(_answer);
++a_it;
++b_it;
}
return answer;
}
int main()
{
vector<vector<int>> a { { 1,2 } ,{ 2,3 } }, b { { 3 , 4 } , { 5 , 6 } };
vector<vector<int> > answer = sumMatrix(a,b);
for(int i=0;i<answer.size();i++)
{
for(int j=0;j<answer[0].size();j++)
{
cout<<answer[i][j]<<" ";
}
cout<<"\n";
}
}
김경주 님 풀이
#include<iostream>
#include<vector>
using namespace std;
vector<vector<int> > sumMatrix(vector<vector<int> >A, vector<vector<int> >B)
{
vector<vector<int> > answer = A;
for(int i=0; i<A.size(); i++){
for(int j=0; j<A[0].size(); j++){
answer[i][j] = A[i][j] + B[i][j];
}
}
return answer;
}
int main()
{
vector<vector<int> > a { { 1 , 2 } , { 2 , 3 } } , b { { 3 , 4 } , { 5 , 6 } };
vector<vector<int> > answer = sumMatrix(a,b);
for(int i=0;i<answer.size();i++)
{
for(int j=0;j<answer[0].size();j++)
{
cout<<answer[i][j]<<" ";
}
cout<<"\n";
}
}