Notice
Recent Posts
Recent Comments
Link
bdfgdfg
[레벨 2] 행렬의 곱셈 본문
반응형
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
int idx = arr1[0].size();
int row = arr1.size();
int col = arr2[0].size();
vector<vector<int>> answer(row, vector<int>(col, 0));
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < col; ++j)
{
for (int k = 0; k < idx; ++k)
{
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
비효율적이지 않나 싶었지만 대부분 거의 나와 똑같은 코드더라.
행렬의 곱셈에서
arr1 arr2
2 3 3 5 4 3
4 2 4 2 4 1
3 1 4 3 1 1
첫번째 계산은 2 * 5 + 3 * 2 + 3 * 3 = 22.
즉 계산이 진행될 때 arr1의 행이 고정이 되어야하고 arr2의 열이 고정이 되어야한다. 두개의 반복문 만으로는 저장이 어렵기 때문에 새로운 k변수를 통해서 고정된 행과 열에서 다음 값의 계산을 진행한다.
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[레벨 2] 최댓값과 최솟값 (0) | 2021.09.20 |
---|---|
[레벨 2 ] 최솟값 만들기 (0) | 2021.09.17 |
[레벨 1] 비밀지도 - 비트연산 (0) | 2021.09.12 |
[레벨 1] 부족한 금액 계산하기 (0) | 2021.09.09 |
[레벨 1] 2016년 (0) | 2021.09.08 |
Comments