[프로그래머스/파이썬] Level 2 행렬의 곱셈

bye9·2021년 4월 22일
0

알고리즘(코테)

목록 보기
125/130
post-custom-banner

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


문제풀이

행렬의 곱셈법칙을 알아야 한다.
예시 2의 경우
[(2x5,3x2,2x3)(2x4,3x4,2x1)(2x3,3x1,2x1)],[],[]...식으로 구성된다.

즉, result[0][0]=arr1[0][0]xarr2[0][0] + arr1[0][1]xarr2[1][0] + arr1[0][2]xarr2[2][0]
result[0][1]=0,0x0,1 + 0,1x1,1 + 0,2x2,1
result[0][2]=0,0x0,2 + 0,1x1,2 + 0,2x2,2...와 같이 구할 수 있다.

해당 식에 따라 반복문을 구해주면 정답이다.

필요한 인덱스가 3개라 조금 헷갈렸던 문제이다.

소스코드

def solution(arr1, arr2):
    result=[[0]*len(arr2[0]) for _ in range(len(arr1))]
    #print(result)
    
    for k in range(len(arr1)):
        for i in range(len(arr2[0])):
            for j in range(len(arr1[0])):
                result[k][i]+=arr1[k][j]*arr2[j][i]
                #print(result)
                
    return result
post-custom-banner

0개의 댓글