
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
answer = arr1;
int rowMax = 0, columnMax = 0;
if(!answer.empty())
{
rowMax = answer.size();
if(!answer[0].empty())
{
columnMax = answer[0].size();
}
}
for(int i = 0; i < rowMax; ++i)
{
for(int j = 0; j < columnMax; ++j)
{
answer[i][j] += arr2[i][j];
}
}
return answer;
}
문제 해석
문제 자체는 예시를 토대로 코드를 작성하면 된다
1. 행과 열의 크기를 받는다
2. 같은 행, 열이면 더한다.
처음 풀이 했을 때는 코드 블럭에 있는 것과 같이 하지 않았다.
개선된 부분은 다음과 같다.
1. 반복문 내의 조건식에서 answer.size(), answer[0].size()를 사용하여 매 반복마다 size()를 호출했음.
2. rowMax, columnMax를 선언하고 1번보다 좀 더 오버헤드를 줄인 코드 사용
3. answer와 answer[0]가 empty가 아닌 경우에 대한 예외처리 추가
수행 결과

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
| 최대공약수와 최소공배수 (0) | 2025.01.07 |
|---|---|
| 직사각형 별찍기 (0) | 2025.01.07 |
| 문자열 내림차순으로 배치하기 (2) | 2025.01.06 |
| 문자열 다루기 기본 (1) | 2025.01.06 |
| 부족한 금액 계산하기 (3) | 2025.01.06 |