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

O2o2✨·2020년 12월 15일
0

알고리즘

목록 보기
22/43

링크 : 연습문제 > 행렬의 곱셈


풀이1 numpy 사용(python)

import numpy as np

def solution(arr1, arr2):
    return np.dot(np.array(arr1), np.array(arr2)).tolist()

풀이2 numpy 사용❌(python)

def solution(arr1, arr2):
    answer = [[0] * len(arr2[0]) for _ in range(len(arr1))] 
    
    for i in range(len(answer)):
        for j in range(len(answer[0])):
            result = 0
            for val1, val2 in zip(arr1[i], [arr2[k][j] for k in range(len(arr2))]):
                result += val1 * val2
            answer[i][j] = result
    
    return answer

설명

  • 결과 행렬의 크기: A행렬(a, b) * B행렬(c, d) = (a, d)
  • 행렬 곱 구하는법: 결과행렬 i행 j열 값 = (A행렬 i행 각 원소 * B행렬 j행 각 원소)의 합
profile
프론트엔드 & 퍼블리셔

0개의 댓글