https://www.acmicpc.net/problem/2740
2740번: 행렬 곱셈
첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개
www.acmicpc.net
솔직히 이런 문제는 10~15분 내에 간단하게 컷해야 되는 건데 오랜만에 풀다보니 시간이 너무 오래 걸리는 것 같다. 단순하게 그냥 수학적인 개념이 들어간 문제였다.
문제 및 입출력 예제
코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] a = new int[n][m];
// 행렬 A 입력값 받기 (N*M)
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
a[i][j] = sc.nextInt();
}
}
// 행렬 B 입력값 받기 (M*K)
m = sc.nextInt();
int k = sc.nextInt();
int[][] b = new int[m][k];
for(int i=0; i<m; i++)
{
for(int j=0; j<k; j++)
{
b[i][j] = sc.nextInt();
}
}
int[][] result = new int[n][k];
// 행렬 곱 실행 (N*K)
for(int x=0; x<n; x++)
{
for(int z=0; z<k; z++)
{
int temp = 0;
for(int y=0; y<m; y++)
{
temp += (a[x][y]*b[y][z]);
}
result[x][z] = temp;
}
}
// 결과값 출력
for(int i=0; i<n; i++)
{
for(int j=0; j<k; j++)
{
System.out.print(result[i][j] + " ");
}
System.out.println();
}
sc.close();
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 9656 돌 게임2 (0) | 2022.03.23 |
---|---|
[백준] 10988 팰린드롬인지 확인하기 (0) | 2022.03.18 |
[백준] N번째 큰 수 (0) | 2022.03.15 |
[백준] 10867 중복 빼고 정렬하기 (0) | 2022.03.14 |
[백준] 10451 순열 사이클 (0) | 2022.03.11 |
댓글