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

Junyoung Park·2021년 12월 25일
0

코딩테스트

목록 보기
23/631

1. 문제 설명

행렬의 곱셈

2. 문제 분석

arr1과 arr2의 곱을 구할 때 편이성을 위해 arr2를 transpose해주었다. transpose한 뒤 arr1의 각 row와 arr2의 각 row를 곱했을 때 arr3의 한 row의 col이 결정되므로 for 문을 활용했다. 특히 zip을 사용하니 편리했다.

3. 나의 풀이

def solution(arr1, arr2):
    
    new_arr2 = [[] for x in range(len(arr2[0]))]
    for row2 in arr2:
        i = 0
        for col2 in row2:
            new_arr2[i].append(col2)
            i += 1
    
    arr3 = []
    for row1 in arr1:
        tmp = []
        for row2 in new_arr2:
            total = 0
            for x, y in zip(row1, row2):
                total += x * y
            tmp.append(total)
        arr3.append(tmp)
    
    return arr3
profile
JUST DO IT

0개의 댓글