발자취
[프로그래머스 Lv.1 / C++] Day53. 행렬의 덧셈 본문
2024. 07. 26 - 코딩테스트 스터디 Day53
01. 문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
02. 제한사항
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
03. 입출력 예
| arr1 | arr2 | return |
| [[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
| [[1],[2]] | [[3],[4]] | [[4],[6]] |
04. 풀이 및 답
#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> v;
for (int j = 0; j < arr1[0].size(); j++) {
v.push_back(arr1[i][j] + arr2[i][j]);
}
answer.push_back(v);
}
return answer;
}우선 문제에서 주어진 answer는 이중 벡터이다.
이중 벡터는 벡터 안에 벡터가 들어가는 자료형으로, 쉽게 말해 answer는 벡터 하나를 요소 하나로 갖는 것이다.
이중 for 문을 통해 같은 행과 열의 값을 서로 더해 일반 벡터 v에 저장해 준다.
그렇게 구해진 벡터 v를 answer에 통째로 넣어주면 된다.
💎 일반적인 vector와 이중 vector 💎
1. 일반적인 벡터 선언 방법
위와 같이 선언한다. v에는 int값 하나하나가 요소로 들어가게 된다.vector <int> v;
2. 이중 벡터 선언 방법
v2에는 int 값 하나하나가 요소로 들어가는 "벡터"가 요소로 들어가게 된다.vector<vector<int>> v2;

정답!

끝
'코딩테스트 > Daily Coding (C, C++)' 카테고리의 다른 글
| [백준 / C언어] Day55. 수 이어 쓰기 1 (1748) (0) | 2024.07.28 |
|---|---|
| [백준 / C언어] Day54. 카잉 달력 (6064) (0) | 2024.07.27 |
| [프로그래머스 Lv.1 / C언어] Day52. 문자열 다루기 기본 (0) | 2024.07.25 |
| [프로그래머스 Lv.1 / C언어] Day51. 부족한 금액 계산하기 (0) | 2024.07.24 |
| [프로그래머스 Lv.1 / C언어] Day50. 약수의 개수와 덧셈 (0) | 2024.07.23 |