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

일단 해볼게·2024년 2월 8일
0

프로그래머스

목록 보기
96/106

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

def solution(arr1, arr2):
    answer = [[] for _ in range(len(arr1))]
    
    # arr1의 행, arr2의 열, arr1의 열에 대해 반복하여 행렬 곱셈 수행
    for i in range(len(arr1)):
        
        for j in range(len(arr2[0])):
            result = 0
            
            for k in range(len(arr1[0])):
                result += arr1[i][k] * arr2[k][j]
                
            answer[i].append(result)
            
    return answer

  • 두 행렬의 크기가 다른 경우 주의

다른 사람 풀이

def solution(arr1, arr2):
    m, n, r = len(arr1), len(arr1[0]), len(arr2[0])
    answer = [[0 for _ in range(r)] for _ in range(m)] # m * r 크기의 행렬

    for i in range(m):
        for k in range(r):
            for j in range(n):
                answer[i][k] += arr1[i][j] * arr2[j][k]
    
    return answer

출처
https://dduniverse.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%96%89%EB%A0%AC%EC%9D%98-%EA%B3%B1%EC%85%88-%ED%8C%8C%EC%9D%B4%EC%8D%AC-python

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글