난이도 : Lv 2
분류 : 구현
문제
import Foundation
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var answer = Array(repeating: Array(repeating: 0, count: arr2[0].count), count: arr1.count)
for i in 0..<arr1.count { // arr1 의 길이만큼 반복
for j in 0..<arr2[0].count { // arr2[0] 의 길이만큼 반복
for k in 0..<arr2.count { // arr2 의 길이만큼 반복
answer[i][j] += arr1[i][k] * arr2[k][j] // 행렬 곱을 수행
}
}
}
return answer
}
풀이
1. 계산된 행렬을 저장할 answer Array 를 만듭니다. 행렬곱의 경우 A 행렬의 행의 수 * B 행렬의 열의 수 의 크기를 갖습니다.
2. 반복문을 사용해 각 행렬의 값을 계산합니다.
P.S
3중 for 를 사용해서 시간 복잡도가 꽤 높지만, 행렬이 작기 때문에 괜찮습니다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스] n^2 배열 자르기 (0) | 2023.04.14 |
---|---|
[프로그래머스] 귤 고르기 (0) | 2023.03.08 |
[프로그래머스] 괄호 회전하기 (0) | 2023.03.07 |
[프로그래머스] 타겟 넘버 (0) | 2023.02.22 |
[프로그래머스] 베스트앨범 (0) | 2023.02.21 |