알고리즘/프로그래머스
[프로그래머스] 행렬의 곱셉 c++
오오오니
2022. 12. 2. 14:13
https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
행렬곱셈하는 법을 까먹어서 검색했다.
또한 벡터에 메모리가 할당되어 있지 않다면
v[0][1]=1;이런식으로 데이터를 넣지 못하고
v.push_back(1); 이렇게 넣어줘야 한다는 점을 간과했다.
비주얼 스튜디오에 의존하다 보니까 아무기능도 없을 때 기초가 부족한 것이 티가 나는 것 같다.
2차원 벡터에 메모리 주소만 할당 되고 메모리가 할당되지 않아서
1차원 벡터에 값을 저장해주고 answer에 1차원벡터를 넣는 방식으로 풀었다.
#include <string>
#include <vector>
#include<iostream>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
vector<int>v;
int w=arr2[0].size();//가로 사이즈
int h=arr1.size();//세로 사이즈
int k=arr2.size();
int temp=0;
for(int i=0;i<h;i++)
{ vector<int>v;
for(int j=0;j<w;j++)
{
for(int m=0;m<k;m++)
{
temp+=arr1[i][m]*arr2[m][j];
}
v.push_back(temp);
temp=0;
}
answer.push_back(v);
}
return answer;
}