공부/코딩테스트

[프로그래머스] 행렬의 곱셈(파이썬)

ghhong 2022. 1. 4. 11:01

 

나의 답 : 

def solution(arr1, arr2):
    #arr1 * arr2가 안 되고, 
    #arr2 * arr1가 될 수도 있기 때문에 확인 후 바꾼다.
    if len(arr1[0]) != len(arr2):
        arr1,arr2 = arr2, arr1
    
    x=len(arr1)
    y=len(arr2)
    z=len(arr2[0])
    # x*y 행렬과 y*z 행렬의 곱 => x*z 행렬
    
    #x*z의 빈 행렬 만들기
    answer = []
    for i in range(x):
        temp=[]
        for j in range(z):
            temp.append(0)
        answer.append(temp)
    
    #값 넣기
    for i in range(x):
        for j in range(y):
            for k in range(z):
                answer[i][k]+=arr1[i][j]*arr2[j][k]
     
    return answer

 

다른 사람의 답 : 

import numpy as np


def productMatrix(A, B):

    x = np.array(A)
    y = np.array(B)
    answer = x*y

    return answer.tolist()

 

실제 코테에서 넘파이 써도 되나?