본문 바로가기
프로그래머스

행렬의 곱셈 (C#)

by LemongO 2024. 6. 7.

📌프로그래머스 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