마음만은 새내기

항상 초심을 잃지 않고 생활하겠습니다~!

프로그래밍/Baekjoon Online Judge

BOJ 2740번(행렬 곱셈) 문제 풀이

동동매니저 2019. 3. 3. 13:14

★ solved.ac 난이도 : B1

(2021년 12월 29일 기준)


[문제 링크]

 

2740번: 행렬 곱셈

첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개

www.acmicpc.net


[문제 분석]

두 행렬의 곱을 구하는 문제


[풀이]

이 문제는 두 행렬이 주어졌을 때, 두 행렬의 곱을 구하는 문제입니다.

두 행렬의 곱을 구하려면, (행렬 A) = N*M, (행렬 B) = M*K 크기여야 합니다.

(즉, 행렬 A의 열의 개수와 행렬 B의 행의 개수가 같아야겠죠?)

[행렬의 곱 구하기]

(여기에서 Aij = 행렬 A의 (i, j) 위치를 나타냅니다.)

C = AB라 하고, A = n*m, B = m*k라 하면,

Cij = Ai1B1j + Ai2B2j + ... + AimBmj (단, 1 <= i <= n, 1 <= j <= k)

두 행렬의 크기와 원소들이 각각 주어지면, 위의 공식을 구현해서 행렬의 곱을 구하시면 됩니다.

아래 링크의 소스 코드도 참고 해주세요~!


[소스 코드]

만약 틀린 부분이 있다면 지적 부탁드릴게요~! (댓글 환영!!)