행렬의 덧셈Permalink

문제 링크Permalink

행렬의 덧셈

분석Permalink

2차원 배열을 더하는 문제입니다.

2중 반복문을 사용해서 행과 열을 순회하며, 각 위치의 값을 더하면 됩니다.

풀이Permalink

#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;
}

answer의 메모리를 미리 할당해줍니다.
이때 2차원 배열로 할당합니다.

2차원 배열의 더하기이므로 2중 반복문을 사용했습니다.
arr1.size()는 1차원 배열의 크기이고, arr1[i].size()는 2차원 배열의 크기입니다.

answer[i][j] = arr1[i][j] + arr2[i][j]는 각 2차원 배열에 접근해서 값들 더하고 대입하는 방법입니다.

성능 요약Permalink

테스트 1 〉 통과 (0.01ms, 4.21MB)
테스트 2 〉 통과 (0.17ms, 4.2MB)
테스트 3 〉 통과 (0.46ms, 4.28MB)
테스트 4 〉 통과 (0.28ms, 4.16MB)
테스트 5 〉 통과 (0.10ms, 4.21MB)
테스트 6 〉 통과 (0.33ms, 4.08MB)
테스트 7 〉 통과 (0.04ms, 4.2MB)
테스트 8 〉 통과 (0.24ms, 3.83MB)
테스트 9 〉 통과 (1.80ms, 5.54MB)
테스트 10 〉 통과 (1.46ms, 5.25MB)
테스트 11 〉 통과 (1.16ms, 4.59MB)
테스트 12 〉 통과 (1.13ms, 5.04MB)
테스트 13 〉 통과 (1.38ms, 4.71MB)
테스트 14 〉 통과 (1.89ms, 5.24MB)
테스트 15 〉 통과 (1.27ms, 5.23MB)
테스트 16 〉 통과 (1.18ms, 5.18MB)
테스트 17 〉 통과 (59.56ms, 74.9MB)

Programmers 카테고리 내 다른 글 보러가기

댓글남기기