RUBY

[프로그래머스] 행렬의 곱셈 본문

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. 알게된 점

 

Comments