반응형
문제는 다음과 같습니다.
https://programmers.co.kr/learn/courses/30/lessons/12949
코딩테스트 연습 - 행렬의 곱셈
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]]
programmers.co.kr
풀이 코드는 다음과 같습니다.
#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;
for (int j{0}; j < arr2[0].size(); j++)
{
int value{0};
for (int k {0}; k < arr1[0].size(); k++)
value += arr1[i][k] * arr2[k][j];
tmp.push_back(value);
}
answer.push_back(tmp);
}
return answer;
}
각 행을 하나의 벡터로 처리하여 정리했으며 vector<vector<int>>로 해석하기 어렵다면 이차원 배열을 생각하면 조금 더 쉽게 문제를 해결할 수 있습니다.
반응형
'프로그래머스 Lv.2 코딩테스트' 카테고리의 다른 글
[프로그래머스 Lv.2] 올바른 괄호 (0) | 2022.09.08 |
---|---|
[프로그래머스 Lv.2] 최댓값과 최솟값 (0) | 2022.09.08 |
[프로그래머스 Lv.2] 다음 큰 숫자 (0) | 2022.05.25 |
[프로그래머스 Lv.2] JadenCase 문자열 만들기 (0) | 2022.03.04 |
[프로그래머스 Lv.2] 피보나치 수 (0) | 2022.02.16 |