[Programmers] Level 2. 행렬의 곱셈

Seo Seung Woo·2022년 9월 16일
0
post-thumbnail

Level 2. 행렬의 곱셈


❔Thinking

  • 행렬 곱셈의 결과를 list로 출력한다.
  • 실제 행렬의 곱셈의 순서에 따라 코드를 작성한다.

💻Solution

  1. 실제 계산과정 그대로 옮긴 풀이
def solution(arr1, arr2):
    answer = []
    for a in arr1:
        row_result = []
        for i in range(len(arr2[0])):
            tmp = []
            for b in arr2:
                tmp += [b[i]]
            row_result.append(sum([x*y for x,y in zip(a, tmp)]))
        answer.append(row_result)
    return answer
  1. 행과 열을 바꾸어 계산하는 풀이
def solution(arr1, arr2):
    answer = []
    for a in arr1:
        tmp = []
        for b in list(zip(*arr2)):
            tmp.append(sum([x*y for x,y in zip(a,b)]))
        answer.append(tmp)
    return answer

🗝️keypoint

  • *를 붙이면 unpacking이 일어난다. 그 후 zip을 하면 list의 행과 열을 바꿀 수 있다.
a = [[1,2,3], [1,2,3]]
for i in zip(*a):
    print(i)
    
    (1,1) (2,2) (3,3)
profile
Code for people

0개의 댓글