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

lemythe423·2023년 7월 14일
0
post-thumbnail

📝 문제

풀이

‼️ (n1xm1) x (n2xm2) = (n1xm2)

‼️ arr2 행렬의 행 길이만큼 반복문 돌려서 곱해줘야 한다

곱했을 때 나오게 되는 행렬의 길이 잘못 생각해서 런타임 에러
for x in range(len(arr2)) 이 부분에서 range 안의 값을 계속 answer 행렬의 열 길이와 같다고 해줘서 틀렸다. (2x3)행렬과 (3x2)행렬을 곱해주게 되면 (2x2)행렬이 나오게 되지만 행렬의 값은 첫 번째 행렬의 1행 3개의 값, 두 번째 행렬은 3행렬까지 돌면서 1열의 값들을 곱해줘야 한다.

def solution(arr1, arr2):
    
    n, m = len(arr1), len(arr2[0])
    answer = [[0]*m for _ in range(n)]
    
    for i in range(n):
        for j in range(m):
            answer[i][j] = sum([arr1[i][x]*arr2[x][j] for x in range(len(arr2))])
    
    return answer
profile
아무말이나하기

0개의 댓글