Posts [알고리즘] 프로그래머스 - 행렬의 곱셈
Post
Cancel

[알고리즘] 프로그래머스 - 행렬의 곱셈


문제

행렬의 곱셈


접근

행렬 곱은 (a x b) x (b x c) 크기의 행렬을 곱했을 때 (a x c) 행렬이 나오며 내부적인 연산은 각 요소마다 b번의 곱을 해야 한다.

3중 for문으로 해결했다.

첫 번째 포문은 a를 의미한다.
두 번째 포문은 c를 의미한다.
세 번째 포문은 b를 의미한다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
def solution(arr1, arr2):
    answer = []
    for i in range(len(arr1)):
        tmp = []
        for j in range(len(arr2[0])):
            sum = 0
            for k in range(len(arr2)):
                sum += (arr1[i][k] * arr2[k][j])
            tmp.append(sum)
        answer.append(tmp)
    return answer
  • C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    vector<vector<int>> answer;

    for(int i = 0; i < arr1.size(); i++){
        vector<int> tmp;
        for(int j = 0; j<arr2[0].size(); j++){
            int sum = 0;
            for(int k = 0; k<arr2.size();k++){
                sum += (arr1[i][k] * arr2[k][j]);
            }
            tmp.push_back(sum);
        }
        answer.push_back(tmp);
    }
    return answer;
}


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 피보나치 수

[프로그래머스 인공지능스쿨] Monthly Project 1