
행렬의 곱셈을 어떻게 하는건지 몰라서
그거부터 알아왔다

이렇게 내가 구하고자 하는 칸이 있으면 배열1의 행 * 배열2의 행을 더하는 넉낌으로다가
하면 되는 듯!
배열 1 [i][k] * 배열2 [k][j]
이러면 변수가 3개가 필요하고, 3중 for문을 써야한다
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
int c = arr1.size(), r = arr1[0].size(), n = arr2[0].size();
vector<vector<int>> answer(c, vector<int>(n,0));
for(int i = 0 ; i < c; ++i){
for(int j = 0; j < n; ++j){
for(int k =0; k < r; k++){
answer[i][j] += arr1[i][k]*arr2[k][j];
}
}
}
return answer;
}
** 주의할 점은
arr1이 c x r 행렬일 때, arr2는 r x n 행렬이어야 행렬 곱이 가능하고,
행렬 곱 결과는 c x n 크기가 되어야 함

요런 넉낌으로다가
'C++ 문제풀기 > 백준-프로그래머스' 카테고리의 다른 글
| 프로그래머스 | 정수 삼각형 (0) | 2025.11.13 |
|---|---|
| 프로그래머스 | 전력망을 둘로 나누기 (0) | 2025.11.12 |
| 프로그래머스 | 합승 택시 요금 (0) | 2025.11.05 |
| 백준 | 2579. 계단오르기 (0) | 2025.11.04 |
| 백준 | 1931. 회의실 배정 (0) | 2025.10.31 |