class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
val rows = arr2[0].size
val cols = arr1.size
var answer = Array(cols) { IntArray(rows) }
for((i , value1) in arr1.withIndex())
{
for(k in 0..value1.size-1)
{
for(j in 0..rows-1)
{
answer[i][j] += arr1[i][k] * arr2[k][j]
}
}
}
return answer
}
}
행렬에 대한 이해가 부족해서 문제를 이해하는데 오래 걸렸다.
a1 | a2 |
b1 | b2 |
c1 | c2 |
*
x1 | x2 |
y1 | y2 |
=
a1 * x1 + a2 * y1 | a1 * x2 + a2 * y2 |
b1 * x1 + b2* y1 | b1 * x2 + b2 * y2 |
c1 * x1 + c2* y1 | c1 * x2 + c2 * y2 |
이러한 방식으로 계산이 된다.
반복문을 중첩해서 계산을 해야하는데 도저히 생각이 나지않아
다른 해설을 참고해서 문제를 풀었다.
해설
2차원 배열을 answer 만든다 이 때
가로는 곱해야하는 2차원 배열의 요소의 길이,
세로는 곱해지는 2차원 배열의 길이 이다.
접근은 a1 -> a2 -> b1-> b2 -> c1 -> c2 순으로 돌면서 누적해서 계산한다.
나는 요리사다 (0) | 2023.05.09 |
---|---|
수리공 항승 (0) | 2023.05.09 |
위장(2레벨) (2) | 2023.01.25 |
괄호 회전하기(2레벨) (0) | 2023.01.24 |
H-Index(2레벨) (0) | 2023.01.21 |
댓글 영역