-
[programmers/Swift] 행렬의 곱셈Archive/Questions 2022. 5. 14. 20:55728x90
programmers.co.kr - 코딩테스트연습 - Lv.2 - 연습문제 - 행렬의 곱셈
Constraints :
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
// // Created by Yongwoo Marco on 2022/04/15. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] { return arr1.enumerated().map { (index, row) in var newRow = [Int]() for columnIndex in 0..<arr2[0].count { let column = (0..<arr2.count).map { arr2[$0][columnIndex] } let element = zip(row, column).reduce(0) { $0 + $1.0 * $1.1 } newRow.append(element) } return newRow } } print(solution([[1, 4], [3, 2], [4, 1]], [[3, 3], [3, 3]])) // [[15, 15], [15, 15], [15, 15]] print(solution([[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]]
How I tried this :
C++로 이중 포문 인덱스 접근으로 머리를 썼던 기억이 있어서고차함수로 구현해보았다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 땅따먹기 (0) 2022.05.16 [programmers/Swift] 피보나치 수 (0) 2022.05.15 [programmers/Swift] JadenCase 문자열 만들기 (0) 2022.05.14 [programmers/Swift] 카펫 (0) 2022.05.14 [programmers/Swift] N개의 최소공배수 (0) 2022.05.13