1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2)
{
int arr1Row = arr1.size();
int arr1Col = arr1[0].size();
int arr2Row = arr2.size();
int arr2Col = arr2[0].size();
vector<vector<int>> answer(arr1Row, vector<int>(arr2Col));
int temp = 0;
for(int i = 0; i < arr1Row; ++i) //행 이동
{
for(int j = 0; j < arr2Col; ++j) //열 이동
{
temp = 0;
for(int k = 0; k < arr1Col; ++k) //행렬 1 열 이동, 행렬 2 행 이동 및 연산
{
temp += arr1[i][k] * arr2[k][j];
}
//행렬의 곱을 정답 행렬에 입력
answer[i][j] = temp;
}
}
return answer;
}
|
의사코드
1. 두 행렬의 사이즈를 구한다.
2. 1행렬의 행과 2행렬의 열로 정답 행렬을 Reserve 한다.
3. 3중 For문으로 계산해서 답을 넣는다.
- 3for문 행렬 1의 열 이동, 행렬 2의 행 이동과 연산을 처리
- 2for문 행렬 2의 열 이동
- 1for문 행렬 1의 행 이동
'코딩테스트 연습' 카테고리의 다른 글
코딩테스트 - 모의고사 (0) | 2020.01.03 |
---|---|
코딩테스트 - 완주하지 못한 선수 (0) | 2020.01.03 |
코딩테스트 - 전파탑 문제 (0) | 2020.01.02 |
코딩테스트 - 배열 내 모든 수들의 최소공배수 구하기 (0) | 2020.01.02 |
코딩테스트 - string 문자열 비교 (0) | 2020.01.02 |