Muscardinus
[프로그래머스] 행렬의 곱셈 (Lv2) 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/12949?language=javascript
문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예
arr1 | arr2 | return |
[[1, 4], [3, 2], [4, 1]] | [[3, 3], [3, 3]] | [[15, 15], [15, 15], [15, 15]] |
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] | [[5, 4, 3], [2, 4, 1], [3, 1, 1]] | [[22, 22, 11], [36, 28, 18], [29, 20, 14]] |
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
int sum=0;
vector<int> temp;
for(int i=0;i<arr1.size();i++){
for(int k=0;k<arr2[0].size();k++){
for(int j=0;j<arr2.size();j++){
sum+=arr1[i][j]*arr2[j][k];
}
temp.push_back(sum);
sum=0;
}
answer.push_back(temp);
temp.clear();
}
return answer;
}
JavaScript
function solution(arr1, arr2) {
var answer = [];
let temp=[];
let sum=0;
for(let i=0;i<arr1.length;i++){
for(let k=0;k<arr2[0].length;k++){
for(let j=0;j<arr2.length;j++){
sum+=arr1[i][j]*arr2[j][k];
}
temp.push(sum);
sum=0;
}
answer.push(temp);
temp=[];
}
return answer;
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 (Lv2) (0) | 2020.07.17 |
---|---|
[프로그래머스] N개의 최소공배수 (Lv2) (0) | 2020.07.17 |
[프로그래머스] 다음 큰 숫자 (Lv2) (0) | 2020.07.16 |
[프로그래머스] 최댓값과 최솟값 (Lv2) (0) | 2020.07.15 |
[프로그래머스] 피보나치 수 (Lv2) (0) | 2020.07.15 |
Comments