행렬의 곱셈
코딩테스트 연습 > 연습문제 > 행렬의 곱셈
https://programmers.co.kr/learn/courses/30/lessons/12949
2차원 행렬 arr1과 arr2를 입력받아,
arr1에 arr2를 곱한 결과를 반환하는 함수,
solution을 완성해주세요.
# 제한 사항
ㆍ 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
ㆍ 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
ㆍ 곱할 수 있는 배열만 주어집니다.
# 입출력 예
ㆍ arr1 1,4 3,2 4,1
ㆍ arr2 3,3 3,3
ㆍ return 15,15 15,15 15,15
해당 문제는 Numpy를 이용하면 훨씬 간편하게 풀린다...만 프로그래머스에서는 numpy 미구현
import numpy as np
def solution(arr1, arr2):
arr1 = np.array(arr1)
arr2 = np.array(arr2)
return arr1@arr2
# Code test
arr1 = [[1, 4], [3, 2], [4, 1]]
arr2 = [[3, 3], [3, 3]]
solution(arr1,arr2)
# 정답 행렬 틀 만들기
def solution(arr1, arr2):
array = []
for i in range(len(arr1)):
array.append(len(arr2[0])*[0])
for i in range(len(array)):
for j in range(len(array[i])):
for k in range(len(array[i])):
array[i][j]+=arr1[i][k]*arr2[k][j]
return array
# Code test
arr1 = [[1, 4], [3, 2], [4, 1]]
arr2 = [[3, 3], [3, 3]]
solution(arr1,arr2)