[programmers/py] 행렬의 곱셈

승민·2023년 10월 20일

알고리즘

목록 보기
35/171

행렬의 곱셈

https://school.programmers.co.kr/learn/courses/30/lessons/12949

문제 설명

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

행열의 곱셈 방법

  • 이를 각 [0][0]과 같이 배열 index를 대입하여 수식을 작성하면 x[i][k]*y[k][j]과 같은 식이 나옴

풀이

def solution(arr1, arr2):
    
    arr = []
    
    for i in range(len(arr1)):
        lis = []
        for j in range(len(arr2[0])):
            s = 0
            for k in range(len(arr1[0])):
                s += arr1[i][k]*arr2[k][j]
            lis.append(s)
        arr.append(lis)        
            
    return arr

다른 사람 풀이

행,행,행--->열,열로 반환해주는
zip(*[[1,2], [3,4], [5,6]])
[(1, 3, 5), (2, 4, 6)]

def productMatrix(A, B):
    return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A]

0개의 댓글