나만의 작은 도서관
문제 12949. 행렬의 곱셈 본문
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12949
난이도 : Lv.2
문제 요약 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
입력
- 2차원 행렬 arr1
- 2차원 행렬 arr2
입력 제한
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입력 예제
// input
[[1, 4], [3, 2], [4, 1]] // arr1
[[3, 3], [3, 3]] // arr2
// ans
[[15, 15], [15, 15], [15, 15]]
풀이 방식
이번 문제는 그저 행렬의 곱셈을 아는 지 물어보는 수학 구현 문제이다. 풀이는 필요없다.
정답 코드
더보기
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
answer.resize(arr1.size(), vector<int>(arr2[0].size()));
for(int arr1_r = 0; arr1_r < arr1.size(); arr1_r++){
for(int arr2_c = 0; arr2_c < arr2[0].size(); arr2_c++){
for(int arr1_c = 0; arr1_c < arr1[0].size(); arr1_c++){
answer[arr1_r][arr2_c] += arr1[arr1_r][arr1_c] * arr2[arr1_c][arr2_c];
}
}
}
return answer;
}
'프로그래머스 문제풀이 > 코드카타' 카테고리의 다른 글
문제 42578. 의상 (0) | 2024.07.13 |
---|---|
문제 131127. 할인 행사 (0) | 2024.07.12 |
문제 87390. n^2 배열 자르기 (0) | 2024.07.10 |
문제 42747. H-Index (0) | 2024.07.09 |
문제 131701. 연속 부분 수열 합의 개수 (0) | 2024.07.08 |