https://school.programmers.co.kr/learn/courses/30/lessons/12949
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 과정
착안
$m \times n$ 크기의 행렬 $A$와 $n \times l$ 크기의 행렬 $B$에 대해, 두 행렬의 곱 $C=AB$ 는 $m \times l$ 크기의 행렬이며,
$$c_{ij}=\sum_{k=1}^{n} a_{ik} b_{kj}$$
이다($a_{ik}, b_{kj}, c_{ij}$는 각각 행렬 $A, B, C$의 요소).
구현
[스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~
더보기
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2)
{
vector<vector<int>> answer(arr1.size());
for (vector<int>& v : answer)
v.resize(arr2[0].size());
for (int i = 0; i < arr1.size(); i++)
for (int j = 0; j < arr2[0].size(); j++)
for (int k = 0; k < arr1[0].size(); k++)
answer[i][j] += arr1[i][k] * arr2[k][j];
return answer;
}
실행 결과
'C++ 코딩 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Programmers] 기능개발 (0) | 2024.01.05 |
---|---|
[Programmers] 의상 (0) | 2024.01.02 |
[Programmers] n^2 배열 자르기 (0) | 2024.01.02 |
[Programmers] 할인 행사 (0) | 2024.01.01 |
[Programmers] 연속 부분 수열 합의 개수 (0) | 2023.12.31 |
댓글