📌프로그래머스 12949
💡풀이
- 행렬 곱셈의 조건인 행렬 arr1의 행과 arr2의 열 개수가 같아야 한다.
즉 곱으로 나올 행렬은 int[arr1.GetLength(0), arr2.GetLength(1)] 이다. - 제한조건에서 곱할 수 있는 배열만 주어진다고 했으니 따로 if문으로 검증할 필요는 없다.
- 행렬 하나의 성분을 구하기 위해 arr1의 열의 개수만큼 반복해야하고 또한 전체 행렬을 돌기위해 2중 반복문이 필요해 총 3중 for문으로 해결한다.
public int[,] 행렬의곱셈(int[,] arr1, int[,] arr2)
{
int row = arr1.GetLength(0);
int col = arr2.GetLength(1);
int[,] answer = new int[row, col];
for (int i = 0; i < row; i++)
{
for(int j = 0; j < col; j++)
{
for (int k = 0; k < arr1.GetLength(1); k++)
{
int x = arr1[i, k];
int y = arr2[k, j];
answer[i, j] += x * y;
}
}
}
return answer;
}
'프로그래머스' 카테고리의 다른 글
기능개발 (C#) (0) | 2024.06.09 |
---|---|
의상 (C#) (0) | 2024.06.08 |
H-Index (C#) (0) | 2024.06.06 |
할인 행사 (C#) (1) | 2024.06.05 |
n^2 배열 자르기 (C#) (0) | 2024.06.04 |