• Home
  • About
    • Monu Kim photo

      Monu Kim

      Strike while the iron is hot

    • Learn More
    • Email
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

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

12 Aug 2021

Reading time ~1 minute

행렬의 곱셈

문제 설명

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

제한 조건

  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.

풀이

행렬 arr1, arr2가 각각 M x N, N x P 일때
행렬곱 answer=M x P

answer[m][p]=arr1[m][0]*arr2[0][p]+arr1[m][1]*arr2[1][p]+...+arr1[m][n]*arr2[n][p]

풀이 코드

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    int m,n,p;
    m=arr1.size();
    n=arr2.size();
    p=arr2[0].size();
    vector<vector<int>> answer(m,vector<int>(p,0));
    for(int i=0;i<m;i++){
        for(int k=0;k<p;k++){
            for(int j=0;j<n;j++){
                answer[i][k]+=arr1[i][j]*arr2[j][k];
            }
        }
    }
    return answer;
}



programmarscoding-testlv2 Share Tweet +1