728x90
코딩테스트 연습 - 행렬의 덧셈 | 프로그래머스 (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
'Programmers > C++' 카테고리의 다른 글
[C++] 프로그래머스 :: 평균 구하기 (0) | 2021.09.14 |
---|---|
[C++] 프로그래머스 :: 하샤드 수 (0) | 2021.09.14 |
[C++] 프로그래머스 :: 핸드폰 번호 가리기 (0) | 2021.09.14 |
[C++] 프로그래머스 :: x만큼 간격이 있는 n개의 숫자 (Lv.1) (0) | 2021.09.13 |
[C++] 프로그래머스 :: 직사각형 별찍기 (Lv.1) (0) | 2021.09.13 |