1. 문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요
- 제한 사항
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
2. 풀이 코드
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
int row = arr1.size();
for(int i=0 ;i <row ; i++)
{
vector<int> sumArr = {};
int col = arr1[0].size();
for(int j=0;j<col;j++)
{
sumArr.push_back(arr1[i][j]+arr2[i][j]);
}
answer.push_back(sumArr);
}
return answer;
}
3. 정리
행과 열이 크기가 같은 것을 단서로 삼고, 배열의 같은 위치에 있는 것끼리 더해야 하므로 이중 포문을 이용하여 한다. 1번재 for문은 배열의 행을, 2번째 for문은 배열의 열을 탐색하여 덧셈을 한다. 2번째 for문이 끝나면 하나의 행이 만들어 지므로 정답 배열에 추가한다.
전체 시간 복잡도는 배열의 행과열 만큼 순회하니 O(n²) 이다.
출처 :https://school.programmers.co.kr/learn/courses/30/lessons/12950
'Algorithm' 카테고리의 다른 글
| [프로그래머스] 같은 숫자는 싫어 (0) | 2025.03.10 |
|---|---|
| [프로그래머스] 직사각형 별찍기 (0) | 2025.03.10 |
| [프로그래머스] 문자열 다루기 기본 (0) | 2025.03.10 |
| [프로그래머스] 부족한 금액 계산하기 (0) | 2025.03.10 |
| [프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2025.03.10 |