문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
행렬의 전치를 zip 하나로 할 수 있다는것을 알아간다.
from functools import reduce
def solution(arr1, arr2):
n,m = len(arr1),len(arr2[0])
answer = [[0]*m for _ in range(n)]
arr2 = list(zip(*arr2))
for row in range(n):
for col in range(m):
answer[row][col] = reduce(lambda x,y : x+(y[0]*y[1]),zip(arr1[row],arr2[col]),0)
return answer
'PS > 프로그래머스' 카테고리의 다른 글
스킬트리 (lv2) (0) | 2022.08.12 |
---|---|
k진수에서 소수 개수 구하기 (lv2) (0) | 2022.08.11 |
JadenCase 문자열 만들기 (lv2) (0) | 2022.08.11 |
양궁대회 (lv2) (0) | 2022.08.11 |
하노이의 탑 (lv2) (0) | 2022.08.11 |