1. 문제
두 개의 행렬이 주어졌을 때, 같은 위치에 있는 원소끼리 더해서 새로운 행렬을 만드는 문제.
단, 입력으로 주어지는 두 행렬의 크기는 같고, 최대 500 x 500까지 들어올 수 있음.
2. 해결
이중 for문을 사용해서 각 행(i)과 열(j)에 접근하면서 같은 위치의 값을 더해주면 됨.
결과는 새로운 2차원 벡터에 저장해서 반환하면 끝.
3. 코드
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer(arr1.size(), vector<int>(arr1[0].size()));
for(int i = 0; i < arr1.size(); i++) {
for(int j = 0; j < arr1[i].size(); j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
설명:
arr1.size()
는 행의 개수,arr1[0].size()
는 열의 개수를 나타냄- 결과 행렬을 미리 크기에 맞춰 생성해두고
- 이중 for문으로 각 위치의 값을 더해서 저장함