본문 바로가기
코딩테스트 준비(kotlin)/기본

[프로그래머스 kotlin] 행렬의 곱셈

by 1chanhue1 2024. 6. 20.

문제 해결 POINT

  • 연산은 앞쪽의 열과 뒤쪽의 행이 같아야 이루어질 수 있다.
  • 연산의 결과 행렬의 크기는 앞쪽의 행 * 뒤쪽의 열 이다.
  • answer[i][j] += arr1[i][k] * arr2[k][j] 이다  ,이 때 k는 앞쪽의 열이자 뒤쪽의 행

 

풀이 코드

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {

    val answer = Array(arr1.size) { IntArray(arr2[0].size) }


    for(i in 0 until arr1.size){  // 행 길이
        for(j in 0 until arr2[0].size){ // 열의 길이
            var sum=0
            for(k in 0 until arr1[0].size){ // 열의 길이
                sum=sum+arr1[i][k]*arr2[k][j]
            }
            answer[i][j]=sum
        }

    }

    return answer
    }
}