- 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한사항
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예
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중 반복문을 돌리면 된다. (비록 O(N^3)이라 하더라도...)
def solution(arr1, arr2): answer = [] answer_row = len(arr1) answer_col = len(arr2[0]) for i in range(answer_row) : tmp = [] for j in range(answer_col) : result = 0 for k in range(len(arr1[0])) : val1 = arr1[i][k] val2 = arr2[k][j] result += val1 * val2 tmp.append(result) answer.append(tmp) return answer
- 로직이 겁~나 간단하지만 가장 안쪽에 있는 반복문에서 이마를 탁 쳤다.
- arr1[0]의 길이만큼 횟수를 반복한다는 것을 알아채면 겜끝!