본문 바로가기
알고리즘/프로그래머스

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

by ㅣlㅣl 2024. 5. 21.

문제

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

 

프로그래머스

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

programmers.co.kr

 


 

주요 아이디어

행렬을 전치하는 것이 이번 문제의 핵심이다.

numpy 라이브러리를 사용하면 메서드를 통해 굉장히 쉽게 전치가 가능하지만.. 순정 파이썬으로도 리스트 전치를 쉽게 할 수 있는 방법에 대해 숙지하과 가자.

arr_T = list(map(list, zip(*arr)))

 


 

코드 구현 (Python 3)

더보기

 

def solution(arr1, arr2):
    answer = []
    # list transpose
    arr2 = list(map(list, zip(*arr2)))
    
    for i, a1 in enumerate(arr1):
        tmp = []
        for j, a2 in enumerate(arr2):
            tmp.append(sum([a1[i] * a2[i] for i in range(len(a1))]))
        
        answer.append(tmp)
        
    return answer

 

 

 


제출 결과