링크: www.acmicpc.net/problem/2740
배준 단계별 분류 분할정복을 풀던 중 브론즈 문제가 나왔는데,
다음 문제도 행렬 곱셈을 활용하기 때문에 먼저 풀어봤다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int [][]A; int [][]B;
int N,M,K;
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
A = new int[N][M];
for(int i=0;i<N;i++) {
st = new StringTokenizer(br.readLine());
for(int j=0;j<M;j++) {
A[i][j] = Integer.parseInt(st.nextToken());
}
}
st = new StringTokenizer(br.readLine());
st.nextToken();
K = Integer.parseInt(st.nextToken());
B = new int[M][K];
for(int i=0;i<M;i++) {
st = new StringTokenizer(br.readLine());
int idx= 0;
while(st.hasMoreElements()) {
B[i][idx++] = Integer.parseInt(st.nextToken());
}
}
int ans[][] = new int[N][K];
for(int i=0;i<N;i++) {
for(int j=0;j<K;j++) {
for(int k=0;k<M;k++) {
ans[i][j] += A[i][k]*B[k][j];
}
}
}
for(int i=0;i<N;i++) {
for(int j=0;j<K;j++) {
System.out.print(ans[i][j] + " ");
}
System.out.println();
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2749 피보나치 수 3 (0) | 2020.12.20 |
---|---|
[백준] 10830 행렬 제곱 (0) | 2020.12.20 |
[백준] 11401 이항계수3 (0) | 2020.12.20 |
[백준] 1629 곱셈 (2) | 2020.12.20 |
[백준] 1992 쿼드트리 (0) | 2020.12.20 |