[프로그래머스] 행렬의 덧셈

네,가능합니다 ㅣ 2025. 4. 21. 11:48

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문으로 각 위치의 값을 더해서 저장함