프로그래머스 연습문제 - 행렬의 곱셈 (level2)

j_wisdom_h·2022년 12월 1일
0

CodingTest

목록 보기
23/58
post-thumbnail

프로그래머스 연습문제 -행렬의 곱셈


문제설명


My Solution

import numpy as np

def solution(arr1, arr2):
    new_arr = np.array(arr1) @  np.array(arr2)
    return new_arr.tolist()

numpy를 사용해 본 적이 있어 뚝딱 만들었는데

numpy는 파이썬에서 제공하는 모듈이 아니라 코테에선 사용불가능 하다..
지원 언어 버전 목록에 tensorflow 라이브러리 버전이 적혀있으면 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]

사실 zip으로 풀어볼려고 이것 저것 건드려봤는데 잘 안됐다.
zip 이 녀석 써먹고 싶지만 쉽지 않군


공부한 것

위의 솔루션에서 zip(*B) 이렇게 하면 unzip이 된다. 이런 기능을 이용해 행열을 바꾼듯한 형태로 사용할 수 있다.(전치)

numbers = (1, 2, 3)
letters = ("A", "B", "C")
pairs = list(zip(numbers, letters))
print(pairs)
# [(1, 'A'), (2, 'B'), (3, 'C')]

numbers, letters = zip(*pairs)
numbers
#(1, 2, 3)
letters
#('A', 'B', 'C')
profile
뚜잇뚜잇 FE개발자

0개의 댓글