250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++)행렬의 덧셈 본문
728x90
반응형
행렬의 덧셈을 구현하는 문제..!
arr1과 arr2의 size는 같으니까 아무거나 사용해도 상관없다..!
첫 번째 for문에서 int형 벡터 tmp와 int형 변수 sum을 선언해준다.
sum은 행렬의 덧셈을 저장해주는 변수이고, tmp는 각 행의 덧셈을 넣어주는 변수이다.
이중 for문을 사용하여
( [0, 0] + [0, 0] ) ( [0, 1] + [0, 1] )
( [1, 0] + [1, 0] ) ( [1, 1] + [1, 1] )
이렇게 계산을 한다.
문제의 첫 번째 예시를 통해 tmp에 대해 자세하게 설명하자면
i = 0, j = 0 일 때, sum = 4 -> tmp에 4 저장.
i = 0, j = 1 일 때, sum = 6 -> tmp에 6 저장.
이렇게 두번 돌게 되면 tmp에는 (4,6)이 저장되므로
이 벡터를 answer에 넣어주면 0번째 행의 각 열에 덧셈의 결과값을 저장할 수 있다.
이 문제는 2차원 벡터를 처음 써보거나 초보자(?)들에게는 약간의 어려움이 있을 수 있겠다고 생각이 들었다..!
하지만 풀다보면 이런 문제는 아아아아주주주주 쉽게 풀 수 있을 것이다..!
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
for(int i = 0; i < arr1.size(); i++)
{
vector<int> tmp;
int sum = 0;
for(int j = 0; j < arr1[i].size(); j++)
{
sum = arr1[i][j] + arr2[i][j];
tmp.push_back(sum);
}
answer.push_back(tmp);
}
return answer;
}
728x90
반응형
'프로그래머스 알고리즘 > 1단계' 카테고리의 다른 글
(프로그래머스 c++)직사각형 별찍기 (0) | 2020.04.29 |
---|---|
(프로그래머스 c++)x만큼 간격이 있는 n개의 숫자 (0) | 2020.04.29 |
(프로그래머스 c++)핸드폰 번호 가리기 (0) | 2020.04.29 |
(프로그래머스 c++)하샤드 수 (0) | 2020.04.29 |
(프로그래머스 c++)평균 구하기 (0) | 2020.04.29 |