[프로그래머스] 행렬의 곱셈 c++
2025. 3. 26. 12:20ㆍ코딩테스트
문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
곱할 수 있는 배열만 주어집니다.
문제 해결 방법
- 행렬의 크기를 초기화 한다 [첫번째 행렬의 행] x [두번째 행렬의 열]
- 3중 for문을 이용한다. (첫번째 배열, 두번째 배열, 계산]
- i는 세로 길이, j는 가로 길이
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer(arr1.size(), vector<int>(arr2[0].size(), 0));
for(int i=0; i<arr1.size();i++)
{
for(int j=0;j<arr2[0].size();j++)
{
int sum=0;
for(int k=0;k<arr2.size();k++)
{
answer[i][j] +=arr1[i][k]*arr2[k][j];
}
}
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/12949
'코딩테스트' 카테고리의 다른 글
[프로그래머스] H-Index c++ (0) | 2025.03.28 |
---|---|
[프로그래머스] 기능개발 c++ (0) | 2025.03.27 |
[프로그래머스] 의상 c++ (0) | 2025.03.25 |
[프로그래머스] n^2 배열 자르기 c++ (0) | 2025.03.23 |
[프로그래머스] 할인 행사 (0) | 2025.03.23 |