PS/Programmers
[프로그래머스] 행렬의 곱셈
RUBY_루비
2020. 10. 28. 23:59
출처:: programmers.co.kr/learn/courses/30/lessons/12949
분류::
1. 문제 이해 및 해결과정
- 두 행렬 곱이 가능하기 위해서는 a*b b*c 의 형태여야한다 1. a*c의 결과배열을 만들어두거 2. for문으로 a,c,b의 반복문을 돌리면서 계산하면 된다 |
2. 풀이방법
1. for 문
def solution(arr1, arr2):
result = [[0]*len(arr2[0]) for i in range(len(arr1))]
for i in range(0,len(arr1)):#arr1행
for j in range(0,len(arr2[0])): #arr2열
for k in range(0,len(arr1[0])):
result[i][j]+=arr1[i][k]*arr2[k][j]
return result
2. zip()함수 이용
def solution(arr1, arr2):
return [[sum(row*col for row, col in zip(row_arr1, col_arr2)) for col_arr2 in zip(*arr2)] for row_arr1 in arr1]
3. 오답원인
4. 알게된 점