[프로그래머스] 행렬의 곱셈

jh Seo·2025년 4월 30일
0

프로그래머스

목록 보기
38/41

개요

행렬의 곱셈

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요

접근 방식

  1. 말 그대로 행렬에서 곱하는 문제다.
  • arr1의 행갯수만큼 반복하며
  • arr2의 열갯수만큼 반복한다.
  • arr1의 열 원소 * arr2의 행 원소 곱한 걸
  • vector에 push_back해주고,
  • 해당 vector을 반환 2차원 벡터에 넣어준다.

전체 코드

#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;

    //arr1의 행만큼 반복
    for(int i=0;i<arr1.size();i++)
    {
        vector<int> tmp;
        
        //arr2의 열갯수만큼 반복해야함
        for(int k=0;k<arr2[0].size();k++)
        {
            int elem=0;
            
            //arr1의 열 * arr2의 행 곱하기-> 반환행렬의 각 원소 구하는거
            for(int j=0;j<arr1[0].size();j++)
            {
                elem += arr1[i][j]*arr2[j][k];
            }
            tmp.push_back(elem);
        }
        answer.push_back(tmp);
        
    }
    return answer;
}
profile
코딩 창고!

0개의 댓글