Apple is Apple
article thumbnail

1. 문제 설명

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

 

제한 조건

  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.

2. 입출력 예

arr1 arr2 return
[[1, 4], [3, 2], [4, 1]] [[3, 3], [3, 3]] [[15, 15], [15, 15], [15, 15]]
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]]

3. 코드

<kotlin />
class Solution { fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): MutableList<MutableList<Int>> { val answer = MutableList<MutableList<Int>>(arr1.size,{MutableList<Int>(arr2[0].size,{i->0})}) var sum = 0 val a1_col = arr1[0].size val a2_col = arr2[0].size val a1_row = arr1.size val a2_row = arr2.size for (i in 0 until a1_row) { for (j in 0 until a2_col) { sum = 0; for (k in 0 until a1_col) { sum += arr1[i][k] * arr2[k][j]; } answer[i][j] = sum; } } return answer } }

4. 풀이

행렬 곱 계산법을 알면 쉽게 풀 수 있는 문제이다.

두 수를 곱하고 그것을 더해주는 연산이 필요하기 때문에 3중 for문을 이용해 해결할 수 있다. 

5. 결과

안정적으로 통과한 것을 볼 수 있다.

profile

Apple is Apple

@mjjjjjj