ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준 2740] - [행렬]- 행렬 곱셈
    알고리즘/분할정복(Divide and conquer) 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


    댓글

Designed by Tistory.