문제 설명
문제 해결
선형대수를 배울 때 행렬곱에 대해서 배운 적이 있다.
m * n, n * r 크기의 행렬을 곱하면 m * r 크기의 행렬이 나온다.
첫 번째 행렬의 행 벡터들과 두 번째 행렬 열 벡터들을 내적하여 새로운 행렬을 구성한다.
두 번째 행렬의 행과 열을 바꿔준다.
첫 번째의 행렬의 행벡터와 두 번째 행렬의 열 벡터를 내적한 값을 리스트에 추가하고
리스트를 다시 리스트에 추가하여 행렬곱 연산한 데이터가 저장된 리스트를 반환한다.
def solve(arr1, arr2):
res = []
arr2 = list(map(list, zip(*arr2)))
for i in range(len(arr1)):
temp = []
for j in range(len(arr2)):
temp2 = 0
for k in range(len(arr2[j])):
temp2 += arr1[i][k] * arr2[j][k]
temp.append(temp2)
res.append(temp)
return res
def solution(arr1, arr2):
answer = solve(arr1,arr2)
return answer
'Algorithm > 프로그래머스 연습 문제' 카테고리의 다른 글
프로그래머스 / 코딩 테스트 / N개의 최소공배수 (0) | 2020.12.25 |
---|---|
프로그래머스 / 코딩 테스트 / JadenCase 문자열 만들기 (0) | 2020.12.25 |
프로그래머스 / 코딩 테스트 / 올바른 괄호 (0) | 2020.12.25 |
프로그래머스 / 코딩 테스트 / 튜플 (0) | 2020.12.25 |
프로그래머스 / 코딩 테스트 / 멀쩡한 사각형 (0) | 2020.12.25 |