알고리즘/분할정복(Divide and conquer)
[백준 2740] - [행렬]- 행렬 곱셈
팡스
2018. 11. 28. 16:39
문제 링크 : https://www.acmicpc.net/problem/2740
이 문제는 행렬의 곱을 계산하면 되는 문제다.
음 이문제는 너무 수학이라 어떻게 셜명을 해야할지 모르겠다.
그냥 풀자.
소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int row1 = Integer.parseInt(st.nextToken()); int col1 = Integer.parseInt(st.nextToken()); int[][] binArr1 = new int[row1][col1]; for(int i=0; i < row1; i++) { st = new StringTokenizer(br.readLine()); for(int j=0; j < col1; j++) { binArr1[i][j] = Integer.parseInt(st.nextToken()); } } st = new StringTokenizer(br.readLine()); int row2 = Integer.parseInt(st.nextToken()); int col2 = Integer.parseInt(st.nextToken()); int[][] binArr2 = new int[row2][col2]; for(int i=0; i < row2; i++) { st = new StringTokenizer(br.readLine()); for(int j=0; j < col2; j++) { binArr2[i][j] = Integer.parseInt(st.nextToken()); } } for(int i=0; i < row1; i++) { for(int j=0; j < col2; j++) { int sum = 0; for(int k=0; k < col1; k++) { sum += binArr1[i][k] * binArr2[k][j]; } System.out.print(sum + " "); } System.out.println(""); } } } | cs |