728x90

https://programmers.co.kr/learn/courses/30/lessons/12949

 

코딩테스트 연습 - 행렬의 곱셈

[[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]]

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
	int row = arr1.size();
	int col = arr2[0].size();
	int t = arr1[0].size();
	int n;
	vector<vector<int>> answer(row, vector<int>(col));
	for (int i = 0; i < row; i++) {
		for (int j = 0; j < col; j++) {
			n = 0;
			for (int k = 0; k < t; k++) {
				n += (arr1[i][k] * arr2[k][j]);
			}
			answer[i][j] = n;
		}
	}
	return answer;
}

행렬의 곱셈을 그대로 구현하면 된다. 3중 for문이라서 약간 헷갈렸지만 공책에 표시하면서 풀었더니 금방 쉽게 풀 수 있었다.

728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 13335번 트럭  (0) 2020.08.16
[백준] 1051번 숫자 정사각형  (0) 2020.08.16
[프로그래머스] 기능개발  (0) 2020.07.31
[프로그래머스] 큰 수 만들기  (0) 2020.07.30
[프로그래머스] 땅따먹기  (0) 2020.07.30

+ Recent posts