본문 바로가기
Algorithm/Programmers

[Programmers / Level2] 행렬의 곱셈

by 개복취 2024. 1. 28.

코딩테스트 연습 - 행렬의 곱셈 | 프로그래머스 스쿨

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


< 코드>

def solution(arr1, arr2):
    # 결과 행렬의 크기를 arr1의 행 수와 arr2의 열 수로 설정
    result = [[0] * len(arr2[0]) for _ in range(len(arr1))]

    # 행렬 곱셈 수행
    for i in range(len(arr1)):
        for j in range(len(arr2[0])):
            for k in range(len(arr1[0])):
                result[i][j] += arr1[i][k] * arr2[k][j]

    return result

-> numpy 너무 마려운 문제였다.. 행렬 곱셈을 위해 요소마다 접근해서 곱해주는게 너무 번거롭다.

 

<정해코드>

def productMatrix(A, B):
    return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A]