본문 바로가기
Programmers/C++

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

by Sin_ 2021. 9. 14.
728x90

코딩테스트 연습 - 행렬의 덧셈 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 행렬의 덧셈

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요

programmers.co.kr


1. 연습 문제

2. 문제 풀이

3. 소스 코드

4. 결과


1. 연습 문제
  • 문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
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]]
2. 문제 풀이
C/C++을 기존에 공부하셨던 분들이 시라면 큰 무리 없이 해결하셨을 거예요.
다만, vector라 당황하실 수 있는데 배열처럼 사용 가능하니 추후 vector에 대해서 다루도록 하겠습니다.
3. 소스 코드
  • Solution
#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    vector<vector<int>> answer;
    vector<int> temp;

    for (int i = 0; i < arr1.size(); i++) {
        for (int j = 0; j < arr1[i].size(); j++) {
            temp.push_back(arr1[i][j] + arr2[i][j]);
        }
        answer.push_back(temp);
        temp.clear();
    }
    return answer;
}
  • Visual Studio
#include <string>
#include <vector>
#include<iostream>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    vector<vector<int>> answer;
    vector<int> temp;

    for (int i = 0; i < arr1.size(); i++) {
        for (int j = 0; j < arr1[i].size(); j++) {
            temp.push_back(arr1[i][j] + arr2[i][j]);
        }
        answer.push_back(temp);
        temp.clear();
    }
    return answer;
}

int main()
{
    vector<vector<int>> answer;
    vector<vector<int>> arr1{ {1,2}, {2,3} };
    vector<vector<int>> arr2{ {3,4}, {5,6} };

    answer = solution(arr1, arr2);

    for (int i = 0; i < answer.size(); i++)
    {
        for (int j = 0; j < answer[i].size(); j++)
        {
            cout << answer[i][j];
        }
        cout << endl;
    }

    return 0;
}
4. 결과

728x90