프로그래머스 연습문제 -행렬의 곱셈
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')