2740 행렬 곱셈 문제 링크
문제

#1
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int aN = Integer.parseInt(st.nextToken());
int aM = Integer.parseInt(st.nextToken());
int[][] A = new int[aN][aM];
for(int i=0; i<aN; i++) {
st = new StringTokenizer(br.readLine());
for(int j=0; j<aM; j++) {
A[i][j] = Integer.parseInt(st.nextToken());
}
}
st = new StringTokenizer(br.readLine());
int bN = Integer.parseInt(st.nextToken());
int bM = Integer.parseInt(st.nextToken());
int[][] B = new int[bN][bM];
for(int i=0; i<bN; i++) {
st = new StringTokenizer(br.readLine());
for(int j=0; j<bM; j++) {
B[i][j] = Integer.parseInt(st.nextToken());
}
}
int[][] answer = new int[aN][bM];
for(int i=0; i<aN; i++) {
for(int j=0; j<bM; j++) {
for(int k=0; k<bN; k++) {
answer[i][j] += A[i][k] * B[k][j];
}
System.out.print(answer[i][j] + " ");
}
System.out.println();
}
bw.flush();
bw.close();
}
}

- 배열 두개를 받아오는 부분 때문에 코드가 길어짐
- 로직 자체는 그냥 행렬 곱셈을 하는 것 뿐이라,, 고려할 거 자체가 별로 없음..
- 그냥 행렬 곱셈을 하는 방법의 수학적 공식만 알면 풀림
- 성공!